41
PONTIFÍCA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Programa de Pós-Graduação em Engenharia de Sistemas Baseada em Tecnologias Java MODELAGEM DE UM SISTEMA PARA MONITORAMENTO VIA GPS PARA REUNIÕES E ENCONTROS PRESENCIAIS Cléber Marcelo Alves de Barros Belo Horizonte 2012

MODELAGEM DE UM SISTEMA PARA MONITORAMENTO VIA GPS PARA REUNIÕES E ENCONTROS PRESENCIAIS

Embed Size (px)

Citation preview

 

PONTIFÍCA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Programa de Pós-Graduação em Engenharia de Sistemas Baseada em Tecnologias

Java

MODELAGEM DE UM SISTEMA PARA MONITORAMENTO

VIA GPS PARA REUNIÕES E ENCONTROS PRESENCIAIS

Cléber Marcelo Alves de Barros

Belo Horizonte

2012

 

Cléber Marcelo Alves de Barros

MODELAGEM DE UM SISTEMA PARA MONITORAMENTO

VIA GPS PARA REUNIÕES E ENCONTROS PRESENCIAIS

Dissertação apresentada ao Programa de Pós-

Graduação em Engenharia de Sistemas Baseada

em Tecnologias Java da Pontifica Universidade

Católica de Minas Gerais, como requisito parcial

para obtenção do título de Especialista.

Orientador: Msc. Will Ricardo dos Santos Machado

Belo Horizonte

2012

 

Cléber Marcelo Alves de Barros

Modelagem de um Sistema para Monitoramento via GPS para reuniões e encontros presenciais

Trabalho apresentado a disciplina de Engenharia

de Sistemas Baseada em Tecnologias Java da

Pontifica Universidade Católica de Minas Gerais,

_________________________________________________

Will Ricardo dos Santos (Orientador) – PUC Minas

_________________________________________________

Udo Fritzke Jr.

_________________________________________________

Claudio Correa

Belo Horizonte, 30 de Novembro de 2012

 

RESUMO

Este documento tem o objetivo detalhar a modelagem de um sistema para

monitoramento via GPS que possa permitir ao usuário do aplicativo agendar uma

reunião ou encontro e incluir outros participantes nestes eventos.

Com base na localização de cada contato o usuário terá a possibilidade de monitorar

aonde cada contato se encontra e ao agendar uma reunião ou encontro o mesmo

saberá imediatamente aonde os outros participantes se encontram naquele

momento e se irão se atrasar.

Como validação para a modelagem foi desenvolvida a funcionalidade que permite

monitorar os contatos através do mapa e saber aonde cada um se encontra naquele

momento.

 

SUMÁRIO 1 INTRODUÇÃO.........................................................................................06-09 2 FUDAMENTAÇÃO TEÓRICA..................................................................10-17 3 ESPECIFICAÇÃO E MODELAGEM DO PROJETO...............................18-28 4 RESULTADOS OBTIDOS.......................................................................29-38 5 CONSIDERAÇÕES FINAIS..........................................................................39 6 REFERÊNCIAS.........................................................................................40-41

  6  

1. INTRODUÇÃO

As redes sociais hoje fazem parte do cotidiano da sociedade, cada

dia mais e mais pessoas passam a adquirir um smartphone ou tablet com

acesso a internet móvel e assim ficam praticamente 24horas conectadas a

rede mundial e em boa parte do seu tempo utilizando-se de redes sociais.

Dentro das redes sociais as pessoas se acostumaram a

compartilhar informações pessoais das mais diversas possíveis, desde

fotos particulares a interesses e atividades que realizam ou que estão

pretendendo realizar. Desta forma passam a dividir tudo o que é possível

com amigos em qualquer parte do mundo.

Com base nesta nova modalidade de interação da sociedade é que

percebemos a importância que uma rede social tem para com seus

usuários e assim é possível explorar o seu potencial em prol de um bem

comum.

Partindo dessa necessidade é que pensamos no desenvolvimento

de uma rede social para dispositivos moveis, entretanto por questões de

tempo foi desenvolvido um sistema para monitoramento de parceiros e

agendamento de encontros e reuniões.

Atualmente a rede social que mais vem sendo utilizada no Brasil e

no mundo tem sido o Facebook (http://www.facebook.com) , sua principal

característica tem sido não somente a possibilidade de interação das

pessoas com fotos e mensagens, mas também aplicativos e jogos

diversos prendendo assim a atenção dos usuários por mais tempo.

Contudo o Facebook é uma rede social que nasceu para uso em

computadores de mesa e seu uso em dispositivos moveis vem sendo feito

por aplicativos que muitas vezes possuem incompatibilidades e

problemas, diferente de redes sociais que já nascem para dispositivos

moveis e que atualmente tem sido a grande procura dos usuários que

cada vez mais passam a usar a internet via smartphones ou tablets.

Por este motivo é que recentemente o Facebook adquiriu a

foursquare (http://foursquare.com) uma rede social voltada para

  7  

dispositivos moveis onde o usuário pode através de sistema de check in

marcar em um mapa em que local se encontra e ainda deixar dicas ou

sugestões para outras pessoas que passem pelo mesmo local.

A ideia do foursquare é bastante criativa, pois um usuário pode ir a

um restaurante e realizar seu ckeck in e deixar uma dica sobre um

determinado prato, etc. Além de poder visualizar outras pessoas que

estejam no mesmo restaurante naquele momento. Entretanto uma

limitação dessa rede social é não permitir que a pessoa agende um

encontro com outros participantes e que possa acompanhar aonde os

mesmos estão e assim saber imediatamente se irão demorar, ou se estão

presos em algum engarrafamento, etc.

1.1 Justificativa

A ideia é desenvolver um sistema de monitoramento móvel para ser

executado em smartphones e tablets que permita ao usuário agendar

rapidamente uma reunião com um grupo de funcionários ou encontro com

um grupo de pessoas e monitorar onde essas pessoas se encontram

através do uso do GPS do dispositivo em um determinado horário.

Possível publico alvo do sistema:

Amigos que agendam um encontro e querem acompanhar a

localização de cada um, para saber se todos já chegaram, se falta alguém

e aonde essa pessoa esta e se vai se atrasar muito;

Mulheres que queiram marcar uma ida ao shopping center e

precisam saber se as outras amigas chegaram e em que loja as mesmas

se encontram;

Vendedoras de produtos de beleza ou confecções, permitindo a

seus clientes saber se elas estão na cidade ou se estão em algum bairro

próximo;

Casais que queria acompanhar aonde o seu par se encontra. E

assim pedir para que façam algum favor como passar em uma padaria,

  8  

supermercado, farmácia, etc. E principalmente saber a que horas

chegarão em casa.

Namorados que agendaram um encontro ou um cinema e podem

monitorar se a outra pessoa irá se atrasar, se já esta próximo de chegar

ou se ainda esta em casa se arrumando.

Pais que podem acompanhar aonde encontram-se seus filhos, se

ainda estão em uma determinada festa ou se já estão a caminho de casa,

se estão em aula, se estão na casa de um determinado amigo(a), etc.

Empresas podem usar a rede social para acompanhar o trabalho

externo de seus funcionários, como vendedores ,executivos, etc que

precisam estar sempre fora da empresa. E assim podem comunicar aos

clientes caso algum se atrase para um determinado compromisso;

Funcionários podem utilizar para agendar reuniões com outros

colaboradores da mesma empresa ou parceiros;

Empresas de transporte que não realizar um alto investimento em

monitoramento pode usar a rede social para acompanhar o deslocamento

de suas cargas;

Franquias de produtos ambulantes como salgados, sorvetes, etc.

Onde o consumidor pode identificar de forma rápida aonde tem uma

barraquinha disponível;

Artistas e celebridades que queriam divulgar aos seus fãs aonde

vão estar e assim permitir que todos acompanhem o seu percurso;

Professores que podem agendar suas aulas através da rede social

e assim os alunos de uma determina disciplina irão sempre acompanhar

se o professor já esta em sala de aula ou se atrasou por algum motivo.

Um usuário poderá agendar uma reunião ou encontro, e depois

disso convocar outros participantes da rede social e assim acompanhar

aonde os mesmo estão e se já estão próximos ao local do encontro ou

reunião. O que vai facilitar a realização de reuniões pontuais e avisar a

todos os participantes caso algum membro esteja preso no transito ou

impossibilitado de comparecer por um motivo de força maior.

Do lado pessoal é possível marcar um encontro com um amigo(a)

ou um casal que marcou um cinema ou algo do gênero, poderá ter

  9  

informações on-line de onde o seu par esta no momento e se vai atrasar

muito ou não. E do lado de uma empresa a mesma ao fazer uso da rede

social conseguira acompanhar em tempo real se os seus funcionários

comparecem a determinadas reuniões ou visitas agendas e caso os

mesmos atrasem será possível avisar ao clientes ou parceiros da reunião

agendada.

1.2 Problemas

O desenvolvimento de uma aplicação como a que esta sendo

proposta neste trabalho, integrada a função GPS de dispositivos moveis

traz um grande desafio em se programar para estes dispositivos que

possuem telas menores. Por possuir telas menores em relação as telas

dos computadores atuais, para que o mesmo possa ser funcional e nítido,

um erro no layout pode desestimular o uso do aplicativo

Tendo como base essas premissas podemos destacar as seguintes

área de problemas a serem tratados:

- A existência de plataformas distintas para smartphone e tablets

- Integração com sistema GPS dos dispositivos moveis, que deverá

ser acionado pelo aplicativo e tentar trazer o máximo de precisão;

- Utilização de programação Java e recursos de programação para

smartphones e tablets afim de se tentar criar uma aplicação de

monitoramento que seja atraente, profissional e que posso interagir com

outras redes sociais já utilizadas.

  10  

2. FUDAMENTAÇÃO TEÓRICA

2.1 Redes Sociais

O conceito de rede social surgiu com a apropriação de

conhecimentos da teoria dos grafos e de redes por estudiosos de

humanidades, como antropólogos e sociólogos, que visavam compreender

fenômenos sociais, analisando-os a partir de relações interpessoais

(WASSERMAN e FAUST, 1994, p. 4).

Interpretar a sociedade como uma rede de atores é, portanto, uma

abstração que viabiliza a análise de sociedades. Nessas redes, os

indivíduos, ou atores, são considerados como nós da rede, as interações

entre atores são consideradas como canais para fluxos de recursos,

materiais ou imateriais, esses canais conceitualizam-se através de

estruturas dos tipo: econômicas, sociais, políticas, etc. Onde os mesmos

possuem padrões duradouros de relações entre indivíduos que utilizam

esses mesmos canais. (WASSERMAN e FAUST, 1994, p. 4).

Segundo Barnes (1969), as redes sociais superam as classes e

grupos sociais, ou seja, podem se referir a relações inter ou intraclasse.

Relembrando um pouco de “História”, observa-se que, na realidade,

“rede social” não é uma tendência ou um aspecto inusitado. Na década de

80 a globalização, no seu amplo conceito, foi marcado pela existência de

navegadores que já desenvolviam a globalização com o comércio de

especiarias e a exploração dos recursos naturais de terras além-mar.

(Ferreira, M. L. T., 2010).

Oferecendo seus produtos a diversos grupos, ou rede, de pessoas e

dessa forma relacionando-se com os membros desses grupos e se

fazendo conhecer pela sua especialidade em um determinado produto.

Atrelado a isso a grande necessidade de expansão dos impérios coloniais

dos portugueses, espanhóis e britânicos forçou os navegadores a

  11  

buscarem outras redes de pessoas e lugares que pudessem ser

explorados.

Com este retrospecto percebemos que a humanidade sempre teve

essa necessidade de viver em redes ou conglomerados, e dessa forma se

relacionar com outras pessoas. Assim, com a chegada da Internet e seu

uso massificado por volta do ano 2000, as barreiras das distâncias entre

os indivíduos foi quebrada e pessoas do mundo inteiro agora podiam

converter e se comunicar através de computadores em suas próprias

casas ou escritórios, originando uma nova forma de relacionamento da

sociedade.

Com a evolução da internet e a chegada dos dispositivos moveis,

como os smartphones e tablets, atrelados a possibilidade de conexão a

Internet móvel muitas pessoas passam a adotar de forma maciça o

conceito de rede social para o mundo virtual e dessa forma começam a se

relacionar de forma imediata com indivíduos distantes geograficamente. E

assim a humanidade mais uma vez começa a se relacionar através de

uma rede de povos.

2.2 Importância das Redes Sociais

Na seção anterior foi descrito como ocorreu o surgimento das redes

sociais, mas afinal, para que serve uma rede social?

Com a utilização das redes sociais o relacionamento entre pessoas

ficou mais próximo e mais rápido, também é notório como nossa vida

pessoal e nossos hábitos rapidamente são vistos por diversas pessoas no

momento em que escolhemos disponibilizá-las, sendo assim a rede social

pode e ajuda muito no sentindo de inserção no Mercado de trabalho e

procura por novas oportunidades.

Atualmente o Brasil supera com folga países altamente conectados,

como Japão e Estados Unidos na utilização e disseminação de redes

sociais virtuais. “A nossa cultura é de troca e compartilhamento, por isso

  12  

estamos tão integrados”, diz René de Paula, responsável pelo

relacionamento com desenvolvedores de tecnologia da Locaweb, empresa

de serviços de internet. Essa presença maciça dos brasileiros nas redes

sociais motiva as companhias de recrutamento a encontrar novos talentos

por meio de LinkedIn, Twitter e Facebook. (VOCE, 2011)

Segundo uma pesquisa da consultoria Robert Half, 63% dos

headhunters brasileiros usam ferramentas de rede sociais para recrutar.

“A internet ajuda a construir o perfil de um profissional”, diz Gil

Giardelli, professor especializado em mídias digitais da Escola Superior de

Propaganda e Marketing (ESPM), de São Paulo.

Além de servir para alavancar a carreira profissional as redes

sociais também possuem grande força no sentindo de entretenimento,

relacionamentos e criação de laços afetivos entre amigos e familiares.

Através das redes sociais as pessoas passaram a se relacionar

com amigos e colegas do passado que estavam distantes e até

esquecidos, o contato familiar muitas vezes afastado por conta da

distância ficou mais próximo e o encontro de novos pares também foi

possível graças a rede social que permite a cada um expor sua vida e sua

intimidade de forma rápida, fácil e controlando o que se deseja

compartilhar.

Porem além desse uso particular as redes sociais também permitem

que você possa se informar sobre diversos assuntos através de noticias

sobre os mais diversos assuntos e não somente receber essa noticias mas

também interagir expressando suas ideias e questionando essas

informações recebidas. Com isso é possível cobrar e exigir das instituições

publicas e privadas seus direitos, realizar manifestações, reclamar sobre

um determinado assunto e ser apoiado rapidamente por milhares ou

milhões de pessoas pelo mundo.

Entretanto “As pessoas precisam entender que a internet arquiva

tudo”, diz o americano Josh Bernoff, da Forrester Research. (VOCE,

2011). Por conta disso é preciso ter cuidado sobre o que e como você

usará o seu poder de ser visto por milhares de pessoas ao redor do

mundo.

  13  

Um outro uso em que as redes sociais cada vez mais veem se

tornando presente é dentro das empresas que querem estreitar o laço de

comunicação com seus consumidores. Muitas já usando as redes para

receberam reclamações ou dúvidas sobre seus produtos e assim ter um

alcance maior com um custo menor.

Em muitos casos também essas empresas se utilizam da força das

redes para divulgar seus produtos ou realizar promoções relâmpagos a

exemplo da loja virtual CompraFácil que desenvolveu uma campanha pela

rede social Twitter em que os seus seguidores participavam de diversas

promoções, ganhando descontos. As ações praticamente dobraram o

numero de seguidores (Any Zamaro,2010).

Algumas redes sociais mais populares e suas principais características

são:

Delicius (www.delicius.com): Serviço de conteúdo de favoritos da

web. O usuário guarda e compartilha com outras pessoas e visualiza o

que os outros estão marcando.

Linkedin (www.linkedin.com): Serviço voltado para o mercado

profissional ele possibilita que usuários registrados possam manter uma

lista detalhada de contatos de pessoas e empresas em que que eles

conheçam e confiem.

Myspace (www.myspace.com): É uma comunidade on-line que

permite que você encontre amigos dos amigos. E você poderá

compartilhar fotos, diários e interesses com sua rede de amigos.

Twitter (www.twitter.com): Compartilhamento de informações e

promoções instantaneamente.

Orkut (www.orkut.com): Rede Social e site de discursão operado

pelo Google voltada principalmente para relacionamento. Baseasse em

comunidades de interesse comum onde os participantes podem interagir

sobre um determinado assunto. Além de ser possível postar fotos, vídeos

e informações pessoais. Com o crescimento do Facebook o Orkut vem

perdendo espaço e o Google já investe em outra rede social chama

Google Plus.

Facebook (www.facebook.com): Muito semelhante ao orkut,

  14  

entretanto inseriu o conceito de aplicativos como jogos e simuladores

virtuais o que mantém as pessoas conectadas, além de inclusão de chats

on-line e off-line.

2.4 Redes Sociais baseadas em localização com dispositivos móveis

Conforme estudo realizado pela Telecom, o acesso à internet feito

por dispositivos móveis cresceu 138%, no Brasil, em 2010. Percebeu-se

que as pessoas pesquisadas no estudo usam seus aparelhos móveis para

realizar as mais diversas funções e entre elas está principalmente o

acesso às redes sociais.

Cerca de 30% dos usuários entrevistados atualizam seus perfis nas

redes sociais por smartphones e tablets utilizando internet móvel. (Moretti

et al, 2010).

Com base nesta pesquisa percebemos um grande publico de redes

sociais através de dispositivos moveis e consequentemente acontece um

esforço de varias redes sociais como Facebook, Twitter, etc. em tentarem

melhorar o acesso aos seus sites pelos dispositivos movéis.

Novas atualizações de aplicativos para smartphones e Tablets que

permitem o acesso as principais redes sociais como Facebook e Twitter

são liberados com grande constância. Tudo isso para facilitar cada vez

mais o acesso dos seus usuários e não perde-los de forma alguma.

Uma prova de que o investimento em mobilidade é fundamental

para as redes sociais, vem do crescimento na venda de smartphones.

Recentemente a The Nielsen Company divulgou uma pesquisa mostrando

que 23% dos celulares em uso nos Estados Unidos são smartphones e

que possuem planos para conexão a Internet (Moretti et al, 2010) .

Diante destas pesquisas percebemos que a Web esta caminhando a

passos largos para o campo da mobilidade, as pessoas querem ter acesso

a internet de seu smartphone de forma simples e rápida em qualquer lugar

e hora, além disso querem ter quase a mesma comodidade de usa-la em

  15  

um computador ou laptop. Mas os usuários não querem apenas navegar

na web, ler e-mails, etc. Os usuários moveis possuem a necessidade de

compartilhar sua vida pelas redes sociais a cada momento e sem

encontrar grandes dificuldades.

No Brasil, a venda de tablets e smartphones também tem

aumentado, as pessoas dão preferência para os smartphones ao invés de

celulares comuns. Dados da IDC estimam que em 2011 a venda de

smartphones cresceu 55%.

Para acompanhar o aumento na venda dos dispositivos móveis, a

tendência é que até o final deste ano o número de usuários de banda larga

móvel seja de 32 milhões no Brasil. Já os de banda larga fixa serão 17

milhões, segundo a Telecom (Moretti et al, 2010). Sendo assim a

quantidade de usuários moveis que estarão “plugados” a web será bem

maior que dos usuários fixos.

E esse aumento traz um grande desafio para as redes sociais que

nasceram na web para atender usuários de banda larga fixa e agora

muitos migram para os dispositivos moveis que na maioria dos casos não

possuem teclado, seu uso é feito por touchscreen e muitas vezes

possuem um baixo poder de processamento se comparado aos

computadores atuais. Essa mudança de paradigma veem forçando as

empresas a tentarem simplificar através de aplicativos o acesso aos seus

sites.

2.4.1 – Redes Sociais Baseadas em Localização Geográfica

Já começam a surgir redes sociais criadas especificamente para

acesso móvel como é o caso da Montribe (montribe.com).

O Montribe possui módulo de registro, módulo de chat, ferramenta

de criação de blogs, ranking de usuários ativos, sistema de estatísticas,

possibilidade de compartilhar imagens, só temos que arrastar e soltar as

funcionalidades que desejarmos permitindo, de forma gratuita, criar um

  16  

sistema que permita a um grupo de usuários interagir de forma simples e

intuitiva. (Helena, Denise, 2011).

Porem quando se fala em rede social para dispositivos móveis o

Foursquare (foursquare.com) esta a frente dos outros concorrentes.

O Foursquare é uma rede social e de microblogging que permite ao

utilizador indicar onde se encontra, e procurar por contatos seus que

estejam próximo desse local. O aspecto lúdico vem do fato de ser possível

acumular distintivos relativos a lugares específicos, um pouco como

os autocolantes dos anos 70. (WIKIPEDIA, 2012).

Além disso o Foursquare permite que seus usuários deixam dicas e

fotos de locais por onde passaram e assim novos usuários que realizam

check-in neste local podem acessar essas dicas, que vão desde

sugestões de pratos em restaurantes a senhas de rede wi-fi em locais

públicos. E essa forma de interação vem fazendo com que a rede social

cresça de forma impressionante. Um exemplo desse crescimento foi a

noticia do ultimo dia 18 de abril de 2012, o Foursquare anunciou que

atingiu a marca de 20 milhões de usuários ativos no seu serviço de

localização e fez mais de dois bilhões de check-ins. (Das Übergeek, 2012)

Recentemente a rede social foursquare experimentou um

crescimento de 800% revela o executivo de desenvolvimento de negócios

da companhia, Charles Birnbaum.(Cordeiro, Leticia 2012)

Segundo informações divulgadas por blogs especializados, o

localizador de mapas virtual do Foursquare, passa a ser integrado ao

Facebook. A mudança, que acompanha a inversão de cores das abas de

Solicitação de Amizade, Mensagem e Notificações da rede social de

Zuckerberg, dos últimos dias, permitirá ao usuário não só marcar a sua

localização bem como incluir uma foto do espaço onde é feito o check-

in. (Diario de Pernambuco,2012)

Uma outra rede social baseada em localização geográfica, o

Footprints, já em sua pagina principal traz o seguinte texto: “Onde estão

seus filhos? Onde estavam eles? Com Footprints, você pode acompanhar

seus filhos e locais de compartilhamento com a família e amigos, a

qualquer hora, em particular.” (Footprints, 2012).

  17  

E ainda completam: “Tudo acontece automaticamente, se o seu

telefone está na sua mão ou no bolso. Tudo em uma interface bem

simples e clara.” (Footprints, 2012).

O Footprints, ou em tradução livre “Pegadas impressas”, é uma

espécie de aplicativo / rede social voltada diretamente para dispositivos

moveis e mais especificamente para o sistema iOS, ou seja, para

dispositivos moveis da Apple. Traz a possibilidade de acompanhar todos

os passos de uma determinada pessoa ou grupo.

Com este aplicativo instalado em um iPhone ou iPad você consegue

acompanhar a localização via GPS onde determinados parceiros podem

esta exatamente naquele momento, também é possível delimitar uma

área, como a escola dos filhos por exemplo e assim os pais podem

acompanhar e serem notificados caso os filhos tenham cruzado aquela

área delimitada pelos pais.

Além de acompanhar é possível também compartilhar com

parentes, amigos e/ou empresas a sua localização através do aplicativo o

que torna interessante o seu uso tanto no campo pessoal quanto

profissional.

  18  

3. ESPECIFICAÇÃO E MODELAGEM DO PROJETO

3.1 Levantamento de Requisitos Funcionais

Os requisitos funcionais abordam O QUE o sistema deve

fazer. Exemplos: o sistema deve permitir que cada professor realize o

lançamento de notas das turmas nas quais lecionou, o sistema deve

permitir que o aluno realize a sua matrícula nas disciplinas oferecidas em

um semestre. (Balbé, Marília 2011)

3.1.1 Cadastros

Os cadastros serão a base para entrada de informações no sistema,

através do qual será possível a inclusão, alteração, exclusão ou consulta

de Contatos, Encontros e Reuniões.

Cadastro de Contatos

Permitir inclusão, exclusão e consulta de pessoas no perfil do

usuário logado no sistema. Porem para realizar esta inclusão o usuário já

deverá ter realizado seu cadastrado na rede social e assim poderá ser

adicionado como contato em qualquer perfil de outros usuários da rede

social

Cadastro de Encontros

Permitir inclusão, exclusão e consulta de Encontros entre usuários

  19  

da rede social que estejam adicionados como contato de cada usuário. As

informações necessárias são: Data, Local, Hora de início e fim do

monitoramento e por ultimo selecionar o(s) contato(s) participante(s) desse

encontro.

Cadastro de Reuniões

Permitir inclusão, exclusão e consulta de Reuniões entre usuários

da rede social que estejam adicionados como contato de cada usuário. As

informações necessárias são: Data, Local, Hora de início e fim do

monitoramento e por ultimo selecionar o(s) contato(s) participante(s) dessa

reunião.

3.1.2 Monitoramentos

Possibilitar ao usuário acessar os monitoramentos do sistema, bem

como o monitoramento de Contatos, Encontros e Reuniões.

Monitorar Contatos

Possibilitar visualizar através de mapa via GPS a exata localização

de todos os contatos cadastrados no perfil do usuário.

Monitorar Encontros e/ou Reuniões

Possibilitar visualizar através de mapa via GPS a localização do(s)

contato(s) que iram participar do encontro ou reunião e mostrar o horário

desse encontro e o tempo que o(s) contato(s) estão atrasados.

  20  

Levantamento de Requisitos Não Funcionais

Esses requisitos declaram características de qualidade que o

sistema deve possuir e que estão relacionadas às suas funcionalidades.

Temos algumas divisões dentro desse tipo de requisitos.

Usabilidade

Por se tratar de um sistema rodando em dispositivos moveis com

telas pequenas é importante a compatibilidade com touchscreen ,botões e

mensagens que estejam legíveis e que as telas possuam poucas

informações para que a aplicação não fique poluída.

Confiabilidade

Disponibilidade: Deverá esta disponível, no ar, 24h por dia. Já que

se trata de uma rede social para dispositivos moveis um usuário pode

agendar um encontro ou reunião a qualquer hora do dia de qualquer lugar

do mundo.

Taxa de erros ou defeitos: Erro critico, o sistema não monitorar

corretamente o(s) contato(s) de uma reunião devido a falhas na utilização

correta das funções de GPS do aparelho móvel ou perder as informações

dessa reunião ou encontro agendado devido a corrupção no banco de

dados.

Outro erro critico, a imprecisão na plotagem da localização de um

ponto no mapa devido a falha na função de localização ou no

armazenamento/recuperação da informação do local.

Desempenho

Recursos computacionais: Servidor para hospedar a aplicação com

  21  

internet rápida e disponível 24h

Recursos Financeiros: Investimento para pagamento de

desenvolvedor, contratação um servidor para hospedar a aplicação onde

geralmente se paga um mensalidade pelo serviço.

Segurança

Verificação de senhas baseado em um banco de dados com o

cadastro do usuários

Criptografia a nível de servidor para garantir a confidencialidade dos

dados e a segurança das senhas dos usuários

Servidor com firewall e monitoramento contra ataques digitais.

Portabilidade

Utilizar o kit Android SDK para garantir que o sistema seja acessado

por qualquer celular compatível com o sistema operacional android

baseada na linguagem de programação Java.

3.3 Prototipação

O protótipo é uma representação visual do produto que está sendo

desenvolvido, construído geralmente com os mesmo materiais do produto

final e já traz os mecanismos necessários para o fazer funcionar.

Toda a ideia que envolve a prototipação está voltada para o tempo e

o custo do desenvolver algo que possa ser testado pelos usuários. (Jesus,

Betley 2010)

  22  

3.3.1 Telas do Sistema

Para melhorar o entendimento das funcionalidades da rede social e

chegar a modelagem do banco de dados, foi utilizado a ferramenta

Balsamiq Mockups(http://www.balsamiq.com). Na figura 01 temos a tela

inicial de login onde deverá ser validado e-mail e senha do usuário, uma

vez que é pouco provável existir dois e-mails idênticos.

Figura 01. Fonte: Autor(2012)

Na figura 02 após a autenticação temos a tela com o menu principal

e dois botões, o primeiro permite acesso as rotinas de cadastro e o

segundo permite que o usuário possa localizar através de mapa aonde

estão os seus contatos.

  23  

Figura 02. Fonte: Autor(2012)

O usuário escolhendo o botão Cadastrar, será direcionado para

uma outra tela aonde terá a possibilidade de escolher entre as opções:

Contato, Encontro e Reunião, conforme mostra a figura 03. Escolhendo

uma dessas opções será possível realizar o cadastro referente.

Figura 03. Fonte: Autor(2012)

Escolhendo a opção Contato o sistema é direcionado para a tela da

figura 04, onde é possível solicitar o cadastro de um novo contato além de

visualizar os contatos existem e excluir algum caso seja necessário.

  24  

Figura 04. Fonte: Autor(2012)

Caso o usuário escolha o botão Encontro na figura 03 ou clique no

botão Encontros da Figura 04 ele é direcionado para o cadastro/solicitação

de um encontro com um ou mais de um contato que ele tenha incluso em

sua lista, conforme pode ser vista na figura 05.

Figura 05. Fonte: Autor(2012)

Caso o usuário escolha a opção Reunião da figura 03 ou botão

Reuniões na figura 04 ou 05 ele pode incluir uma reunião seguindo a

  25  

mesma lógica para incluir um Encontro. A tela de inclusão pode ser

conferida na figura 06.

Figura 06. Fonte: Autor(2012)

Nas Figura 05 e 06 é possível obter uma listagem dos Encontros e

Reuniões agendados clicando no botão Listar e dessa forma ter o

resultado das telas mostradas nas figuras 05-1 e 06-1.

Figura 05-1. Fonte: Autor(2012) Figura 06-1. Fonte: Autor(2012)

  26  

Nas figura 05-1 e 06-1 existe a possibilidade de Monitorar cada

contato com base na Reunião ou Encontro agendado. Clicando nesse

botão o usuário terá a imagem da figura 07. Onde é possível ver a

localização do contato e saber se o mesmo esta atrasado ou não para o

Encontro ou Reunião.

Figura 07. Fonte: Autor(2012)

Contudo na tela da figura 02 se o usuário escolher o botão

Monitorar/Localizar ele poderá ver através de um mapa aonde estão todos

os seus contatos online naquele exato momento. Isto é demostrado na

figura 08.

Figura 08. Fonte: Autor(2012)

  27  

3.3.2 Modelagem do Banco de Dados

Com base na prototipação das telas é possível a modelagem do

banco de dados para que todas as informações mostradas no protótipo

possam funcionar de forma correta e coerente. Dessa forma na figura 09

temos a modelagem de 03 tabelas que irão contar o Banco de Dados da

Rede Social.

Sendo uma tabela chamada Usuario, para armazenar os usuários

cadastrados e sua localização baseada em longitude e latitude. Uma

tabela chamada ContatoUsuario que irá relacionar o usuário ao seu

contato que na verdade é outro usuário da rede social que também terá

um localização e um acesso permitido a rede social

E por fim uma tabela EncontroReunião onde serão armazenados a

data, hora, local e uma data para inicio e fim do monitoramento, pois a

ideia é que o usuário monitore um outro contato por um período antes da

reunião ou encontro acontecer. Essa tabela também irá armazenar um

código definido pelo campo id_contatoUsuario que referencia a tabela

ContatoUsuario e assim saberemos quem é o usuário que agendou o

encontro ou reunião e quem será o contato que irá participar.

Figura 09. Fonte: Autor(2012)

  28  

3.4 Metodologia de Validação

Com o intuito de validar as especificações e a modelagem do

sistema e podermos apresentar os resultados obtidos, foi decidido a

implementação da funcionalidade de monitorar através do Google Mapa

todos os contatos do usuário quando o mesmo estiver acessando a rede

social.

Juntamente com uma tela de login do sistema que irá fazer a

validação do e-mail e senha com base na tabela de usuário. Um método

para realizar a checagem a cada minuto da localização do usuário que fez

a autenticação no sistema e assim realizar uma atualização na tabela

usuário no banco de dados, permitindo que cada usuário saiba

exatamente aonde seus contatos online se encontram.

  29  

4. RESULTADOS OBTIDOS

Fluxo da Aplicação

Na Figura 10 é possível vermos o fluxo da aplicação de monitoramento

para obtenção das informações hospedada no servidor. No primeiro momento

a aplicação instalada no dispositivo móvel acessa a pagina JSP através da

Internet e no segundo momento obtém os dados em formato XML.

Figura 10. Fonte: Autor(2012)

Com base no fluxo apresentado na figura 10 e com a modelagem

mostrado no capitulo 03 foi desenvolvido uma aplicação para monitoramento

de usuários, um vídeo de demonstração pode ser visto pelo link:

http://www.youtube.com/watch?v=jU90Bicng4E ,em seguida iremos analisar

as etapas para o desenvolvimento desta aplicação.

4.1 Obtendo contatos do usuário

Gerenciamento de Informações no Servidor de Aplicação

O primeiro passo para o desenvolvimento do monitoramento dos

contatos foi obter uma forma da aplicação Android executada no celular ter

acesso aos dados do usuário que estão armazenados em um Banco de

Dados Mysql.

Das várias formas que existem para se implementar tal recurso foi

  30  

escolhido o processo de geração de um arquivo em formato XML através

de uma página JSP. Com código Java, essa página acessaria os dados

armazenados no Banco de Dados e retornaria a informação consultada no

formato XML, possibilitando que a aplicação desenvolvida em Android

acesse essas informação. A seguir está descrito o trecho de código JSP

responsável pela implementação de tal recurso.

1. ...

2. rs = st.executeQuery("select

us.id_usuario,us.nome,us.longitude,us.latitude from

usuario us, contatousuario ctus where ctus.id_usuario =

"+codUsuario

3. +" and us.id_usuario = ctus.id_contato ");

4. %>

5. <Usuario>

6. <%

7. while(rs.next()){

8. %>

9. <id><% out.print(rs.getInt("id_usuario")); %></id>

10. <nome><% out.print(rs.getString("nome")); %></nome>

11. <latitude><% out.print(rs.getString("latitude"));

%></latitude>

12. <longitude><% out.print(rs.getString("longitude"));

%></longitude>

13. <%

14. }

15. %>

16. </Usuario>

Na figura 11 é possível observarmos a execução da página JSP

onde é passado o código do usuário como parâmetro pelo comando:

?cod_usuario=1. Então podemos ver a montagem do arquivo XML com as

tags criadas e os dados recuperados da tabela usuário do Banco de

Dados RedeSocial.

  31  

Figura 11. Fonte: Autor(2012)

Monitoramento no Dispositivo Móvel

O próximo passo será desenvolver a aplicação em Android para acessar a

pagina JSP conforme foi acessa na figura 10 pelo navegador web e

realizar a leitura e tratamento do retorno dessa página em formato XML.

Para o acesso a pagina JSP criamos um método chamado getXML()

que será responsável por ler o código em XML e retornar uma cadeia de

String conforme o código a seguir:

1. public static String getXML(int id_usuario){

2. String line = null;

3. try {

4. DefaultHttpClient httpClient = new

DefaultHttpClient();

5. HttpPost request = new

HttpPost("http://192.168.1.1:8080/AplicacaoRedeSocial

/cadastro/buscaDadosNew.jsp?cod_usuario="+id_usuario;

6. HttpResponse httpResponse =

  32  

httpClient.execute(request);

7. HttpEntity httpEntity = httpResponse.getEntity();

8. line = EntityUtils.toString(httpEntity);

9. } catch (UnsupportedEncodingException e) {

10. ...

11. }

12. return line;

O método getXML recebe o id do usuário como parâmetro na linha 1

e na linha 5 através do objeto request da classe HttpPost ele armazena a

URL da pagina JSP já passando o id_usuario como parâmetro para a

pagina.

Nas linhas 6, 7 e 8 respectivamente o método executa(acessa) a

URL armazenada no objeto request em seguida obtém o resultado e

armazena em formado String na variável line que é retornada pelo método

getXML().

O próximo passo será colocar a cadeia de String retornada pelo

método getXML() em um método do tipo Document, e assim será possível

a leitura de cada tag e cada informação vinda da cadeia de String. Este

método é detalhado a seguir:

1. public final static Document XMLfromString(String xml){

2. Document doc = null;

3. DocumentBuilderFactory dbf =

DocumentBuilderFactory.newInstance();

4. try {

5. DocumentBuilder db = dbf.newDocumentBuilder();

6. InputSource is = new InputSource();

7. is.setCharacterStream(new StringReader(xml));

8. doc = db.parse(is);

9. } catch (ParserConfigurationException e) {

...

  33  

10. }

11. return doc;

12. }

Os métodos getXML() e XMLFromString() são usandos em conjunto

dentro da aplicação Android para acessar e ler o arquivo XML retornado

pela pagina JSP.

Na aplicação Android tem-se uma classe mapa.java e nela esta o

seguindo código:

String xml = getXML(Integer.parseInt(id_usuario));

Document document = XMLfromString(xml);

Dessa forma é criado uma variável do tipo String chamada xml que

irá receber o retorno do método getXML() e um objeto do tipo Document

chamando document que receberá o arquivo XML retornar pela pagina

JSP em um formato organizado para que possamos trabalhar com ele.

Agora precisamos navegar na estrutura de documento do XML que

esta armazenado no objeto document para extrair as informações e em

seguida obter a latitude e longitude para assim marcarmos no google

mapa. Para isto foi usado a seguinte sequência de código:

1. //Recuperando o elemento raiz

2. NodeList contatos =

document.getElementsByTagName("Usuario");

3. //Navegando na estrutura do XML

4. for(int idItem = 0; idItem < contatos.getLength();

idItem++) {

5. Element contato = (Element)contatos.item(idItem);

6. NodeList lati =

contato.getElementsByTagName("latitude");

7. NodeList longi =

contato.getElementsByTagName("longitude");

  34  

8. NodeList nome = contato.getElementsByTagName("nome");

9. for(int idSubItem = 0; idSubItem < lati.getLength();

idSubItem++) {

10. Element info1 = (Element) lati.item(idSubItem);

11. Element info2 = (Element) longi.item(idSubItem);

12. Element info3 = (Element) nome.item(idSubItem);

13. int latitude =

Integer.parseInt(info1.getFirstChild().getNodeValue());

14. int longitude =

Integer.parseInt(info2.getFirstChild().getNodeValue());

15. String usuario =

info3.getFirstChild().getNodeValue();

16. //preparando os pontos que vão ser marcados no mapa

17. GeoPoint ponto = new GeoPoint(latitude, longitude);

18. OverlayItem overlayitem = new OverlayItem(ponto,

"Contato: ", usuario);

19. itemizedoverlay.addOverlay(overlayitem);

20. }

21. }

Na linha 2 foi criado um objeto chamado contatos da NodeList onde

através do comando document.getElementsByTagName("Usuario");

podemos obter todos os nos referente a tag XML usuário.

Em seguida na linha 4 montamos um laço for com base na

quantidade de elementos que o objeto contatos terá. E assim criamos o

objeto contato da classe Element, esse objeto contato será o responsável

por acessar as outras tag do arquivo XML como: <nome>,<latitude> e

<longitude>

Então nas linhas 6,7 e 8 são criados 03 objetos do tipo NodeList:

lati,longi e nome que serão responsáveis por obter cada no de tag XML

existente. E assim nas linhas 10,11 e 12 criamos 03 objetos do tipo

Element denominados: info1, info2 e info3 que serão responsáveis por

retornar os valores das tags XML, isto é realizado nas linhas 13,14 e 15.

  35  

Dessa forma teremos duas variáveis do tipo Inteira denominadas

latitude e longitude e uma do tipo String denominada nome. Cada variável

dessa receberá a informação contida na tag XML a cada execução do laço

For da linha 9. E consequentemente teremos os dados que foram

extraídos do banco de dados RedeSocial e passados via XML como

mostrado anteriormente na figura 10.

O próximo passo será pegar a latitude e longitude e marcar no

google mapa. Para isso usamos a classe da API do google chamada

GeoPoint onde podemos passar a latitude e longitude conforme a linha 17.

Na linha 18 foi criado um overlayitem ou seja uma visão do mapa

que marcará a posição passada objeto GeoPoint. Na linha 19 adicionamos

essa visão ao objeto itemizedoverlay , que tratasse de uma classe

criada para permitir a visualização e inicialização do Google Mapa, essa

classe por sua vez extende a classe ItemizedOverlay.

Assim com base no arquivo XML retornado pela pagina JSP

teremos a tela mostrada na figura 12, onde cada bonequinho do Android

corresponde a um contato. Caso o usuário clique no bonequinho que esta

marcado em Pernambuco onde a latitude e longitude é referente a cidade

de Petrolina e esta associada ao contato Will a figura 13 será exibida

Figura 12. Fonte: Autor(2012) Figura 13. Fonte: Autor(2012)

  36  

4.2 Tela de Autenticação de Usuário

Seguindo a mesma lógica de acesso a banco de dados via JSP

retornando XML e o tratamento das informações pela aplicação Android

criamos uma tela de autenticação que valida através de e-mail a senha do

usuário conforme mostrado na figura 14 e em seguida mostra uma tela

principal com botões para outras funcionalidades como mostrado na figura

15. O usuário escolhendo o botão MONITORAR / LOCALIZAR terá acesso

a tela mostrada na figura 12.

Realizando a autenticação conseguiremos obter o código do usuário

que foi passado na chamada do arquivo JSP executando o comando SQL

que retornará os dados dos contados do usuário logado no sistema, que

neste caso serão a latitude e longitude.

Figura 14. Fonte: Autor(2012) Figura 15. Fonte: Autor(2012)

No momento em que o usuário realizou a autenticação no sistema

um método chamado obterLatitudeLongitude() será executado a cada

  37  

minuto para obter a localização atual do usuário e passar para um pagina

JSP que realizará a atualização via banco de dados conforme mostrado no

código abaixo:

1. int delay = 5000; // delay de 5 segundos para iniciar

2. int period = 60000; // repetindo a cada minuto

3. timer = new Timer();

4. timer.scheduleAtFixedRate(new TimerTask() {

5. public void run() {

6. //Obtendo a latitude e longitude a cada minuto

7. LocationManager LM =

(LocationManager)getSystemService(Context.LOCATION_SERVIC

E);

8. String bestProvider = LM.getBestProvider(new

Criteria(),true);

9. Location l = LM.getLastKnownLocation(bestProvider);

10. if(l!=null){

11. String latitude = String.format("%.6f",

l.getLatitude()).replaceAll("\\,", "");

12. String longitude = String.format("%.6f",

l.getLongitude()).replaceAll("\\,", "");

13. DefaultHttpClient httpClient = new

DefaultHttpClient();

14. HttpPost request = new

HttpPost("http://192.168.1.1:8080/AplicacaoRedeSocial/cad

astro/atualizarLocalizacao.jsp?id="+id_usuario+"&latitude

="+latitude+"&longitude="+longitude);

Nas linhas 7, 8 e 9 utilizamos a classe LocationManager da

biblioteca do Android que permite obtermos a latitude e longitude

utilizando o GPS do aparelho celular.

Em seguida conforme a linha 14 passamos essas informações via

  38  

URL para a pagina JSP que realizará a atualização na tabela usuario do

banco de dados conforme o id do usuário que esta logando no sistema.

Dessa forma concluímos a funcionalidade de monitoramento dos

contados uma vez que a localização de cada usuário é atualizada

automaticamente quando o mesmo acessa o sistema, e o usuário poderá

visualizar seu contatos pelo Google Mapa.

  39  

5. CONSIDERAÇÕES FINAIS

O trabalho realizado serve como base para a criação de uma rede

social para dispositivos móveis em que as pessoas possam marcar encontros,

reuniões e conseguir saber imediatamente se os outros participantes irão se

atrasar.

Uma ferramenta como essa pode ser de grande importância nos dias

atuais em que o tempo é algo bastante valioso. Uma ferramenta como a

proposta neste estudo tenta minimizar os atrasos e manter as pessoas

informadas. Executivos, empresários, autônomos, professores e alunos

porem fazer uso dos benefícios dessa ferramenta de monitoramento.

As tecnologias mencionadas neste estudo se mostraram bastante

apropriadas para o desenvolvimento da solução, entretanto na quesito

obtenção das informações no servidor de dados, ao utilizarmos o modelo de

acesso via pagina JSP retornando dados no formado XML poderemos

sobrecarregar a rede de dados com a demanda de requisições. Uma das

melhores formas de se fazer este acesso seria utilizando WebServices onde a

aplicação móvel faria o consumo dessa aplicação, WebService, para obter os

dados do servidor.

  40  

6. REFERÊNCIAS BIBLIOGRÁFICAS

LEE, WEI-MENG, Introdução ao Desenvolvimento de Aplicativos para o Android – Editora Ciência Moderna, 2011

LECHETA, Ricardo R. Google Android – Aprenda a criar aplicações para dispositivos móveis com o Android SDK – Novatec, 2010

GONÇALVES, Edson. Desenvolvendo Aplicações Web com Jsp , Servlets , Javaserver Faces , Hibernate , Ejb 3 Persistence. – Editora Ciência

Moderna, 2007

CORNELL, Gary; HORSTMANN, Cay S. Core Java - Vol. 1 - Fundamentos - 8ª Ed. 2010 - Editora: Pearson Education - Br, 2010

MOOIBROEK Mark, Android tutorial: How to parse/read XML data into

Android ListView . Disponível em: http://p-xr.com/android-tutorial-how-to-

parseread-xml-data-into-android-listview/

PUCCINI, Renato. Pegar latitude e longitude no android - Disponível em:

http://dollypix.com/2011/07/15/pegar-latitude-e-longitude-no-android/

Google Developers. MapView Tutorial - Disponível em:

https://developers.google.com/maps/documentation/android/hello-mapview

Revista Você S/A / Desenvolva sua Carreira / Edição 153, 2011

Moretti, João, Artigo: Mobilidade é fundamental para o sucesso das redes

sociais,2010

  41  

Helena, Denise – Artigo Motribe – Cria uma rede social para dispositivos

móveis, 2011

WIKIPEDIA. Disponível em: http://pt.wikipedia.org/wiki/Foursquare, 2012

Das Übergeek. Disponível em: http://br.noticias.yahoo.com/foursquare-

ultrapassa-marca-20-milh%C3%B5es-usu%C3%A1rios-153008905.html, 2012

Diario de Pernambuco

http://www.diariodepernambuco.com.br/nota.asp?materia=20120516120014,

2012

Revista Exame, http://exame.abril.com.br/tecnologia/noticias/foursquare-

cresceu-800-no-brasil-nos-ultimos-12-meses, 2012

http://www.footprints.net/

Balbé, Marília http://www.profissionaisti.com.br/2011/06/levantamento-de-

requisitos-voce-sabe-o-que-e/