Você está na página 1de 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
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/

Você também pode gostar