You are on page 1of 56

Universidade Federal do Piau

Campus Senador Helvdio Nunes de Barros


Curso Bacharelado em Sistemas de Informao

Francisca Pmela Carvalho dos Santos

Sistema de Recomendao de Softwares para Suporte de


Computadores com o uso de Filtragem Colaborativa

PICOS
2013

Francisca Pmela Carvalho dos Santos

Sistema de Recomendao de Softwares para Suporte de Computadores com o uso de


Filtragem Colaborativa

Trabalho de Concluso de Curso apresentado ao Curso de


Bacharelado em Sistemas de Informao do Campus Senador
Helvdio Nunes de Barros da Universidade Federal do Piau
como parte dos requisitos para obteno do Grau de Bacharel
em Sistemas de Informao, sob orientao da Professora
Msc. Juliana Oliveira de Carvalho.

PICOS
2013

Dedico este trabalho a Deus, pelo dom da vida e por guiar sempre os
meus passos, sem Ele eu nada sou. Dedico tambm aos meus pais, a
quem tenho como exemplo de perseverana e humildade e a minha irm
(eterna cmplice), amo muito vocs! Enfim dedico a finalizao desse
trabalho a todos aqueles que fizeram e fazem parte da minha caminhada,
famlia e verdadeiros amigos.

Hoje posso dizer que essa longa caminhada resultou na realizao de um sonho, que exigiu
muita determinao e ousadia para ser concretizado. Agradeo a todos aqueles que de alguma
forma contribuiram para finalizao de mais essa etapa na minha vida. Em especial agradeo...
Deus que me proporcionou fora para realizao desse trabalho e de todas as minhas
demais conquistas. Digno s, Senhor, de receber glria, e honra, e poder; porque Tu criaste
todas as coisas, e por Tua vontade so e foram criadas. (Apocalipse 4:11).
minha famlia que sempre me apoiou em todos os momentos. Em especial, aos meus pais
Carmo Leal dos Santos e Francisca Almeida de Carvalho dos Santos, meus maiores exemplos,
e a minha irm Carmem Jssica Carvalho dos Santos, por me incentivarem e me orientarem nos
momentos mais difceis, apresentando os meus sonhos e objetivos em suas oraes.
minha orientadora, Juliana Oliveira de Carvalho (mezona), com quem aprendi muito
durante todo esse tempo e a quem tenho como um exemplo a seguir. Obrigada pela disposio
em dividir seu tempo e conhecimento, pelos conselhos ofertados, pelas vezes que me acalmou
pelo telefone e principalmente pela sua amizade, fortalecida ao longo desses anos de curso.
professora Ana Maria Koch, que me ensinou como ir em busca do que quero, mostrando
a importncia de dedicar tempo e esforo para conseguir chegar l. Obrigada pela confiana e
pelos ensinamentos, com certeza sero muito importantes ao longo dessa jornada.
todos os demais professores, que agregaram conhecimento a minha vida, desde o jardim
de infncia at a finalizao desse curso superior. Em especial aos professores: Ismael Holanda,
Ivenilton Alexandre, Patrcia Medyna, Frank Csar, Dennis Svio, Rayner Gomes, Fredson
Muniz, Patrcia Vieira, Arlino Henrique, Algeir Sampaio, Jlio Csar, Leonardo Sousa, Isabel
Orquiz, Laurindo Neto, Ricardo Viana e Ryan Azevedo.
Ao meu namorado, Celles Nunes, por todo o carinho, cuidado, pacincia e compreenso
que me dedicou, assim como pela demonstrao de confiana que depositou em mim. Obrigada
por estar sempre comigo. Te adoro muito fofinho :* !
todos os meus amigos, em particular Danila Feitosa (irm), Ataniel Soares (irmo), Kaio
Moura (maninho), Cliciano Sabino, Ohana Morais, Guilherme Feitosa, Klisanderson de Sousa,
Ilzilene Reis, Carlos Henrique, Erismar Arajo, Pamela Graziella, Rafael Morais, Jonnison
Lima e a toda a galerinha do RELIH, pela grande contribuio e incentivo no desenvolvimento
desse TCC e pela cumplicidade e amizade oferecida em todos os momentos.
Obrigada a todos que, mesmo no tendo seus nomes citados aqui, contribuiram direta e
indiretamente para concluso dessa etapa.

O mais importante de tudo nunca deixar de se perguntar. A curiosidade


tem sua prpria razo de existir.
Albert Einstein
No deixe o barulho da opinio dos outros abafar sua voz interior. E mais
importante, tenha a coragem de seguir seu corao e sua intuio. Eles de
alguma forma j sabem o que voc realmente quer se tornar. Tudo o mais
secundrio.
Steve Jobs

Resumo
Com a evoluo da tecnologia houve uma grande ampliao na quantidade de informaes
disponibilizadas em meios eletrnicos, o que pode acarretar em uma sobrecarga de contedo
irrelevante, assim como uma maior procura por softwares para esses dispositivos. Com o uso
de um sistema de recomendao, pode-se abstrair o que relevante a ser usado, atravs de recomendaes que satisfaam ao interesse do usurio. A proposta deste trabalho desenvolver um
sistema de recomendao de softwares para suporte de computadores, para plataforma Android,
com objetivo de entender como se desenvolve sistemas de recomendao, de implementar aplicaes para dispositivos mveis, para os quais existem um crescente nmero de usurios e uma
maior acessibilidade para mesmos, alm de desenvolver uma aplicao que possa contribuir
com recomendaes de softwares para auxiliar na soluo de problemas do sistema e de softwares para o usurio.
Palavras-chave: Sistemas de Recomendao, Dispositivos Mveis, Suporte de Computadores.

Abstract
With the evolution of technology there has been a huge increasing in the amount of information
available on electronic media, which may result in an overload of irrelevant content, as well as
a higher demand for software for these devices. With the use of a recommendation systems,
you can abstract what is relevant to be used, through recommendations that satisfy the interest
of the user. The purpose of this work is to develop a software recommendation system of
softwares for computer support for the Android platform, aiming to understand how to develop
recommendation systems, to implement mobile applications, for which there are a growing
number of users and greater accessibility to them, and to develop an application that can help
with software recommendation to assist in system troubleshooting and softwares for the user.
Keywords: Recommendation Systems, Mobiles, Computer Support.

Lista de Figuras
Figura 1 -

Sistema de Recomendao . . . . . . . . . . . . . . . . . . . . . . . .

18

Figura 2 -

Frmula Coeficiente de Correlao de Pearson . . . . . . . . . . . . . .

21

Figura 3 -

Sentido e intensidade do Coeficiente de Correlao de Pearson . . . . .

22

Figura 4 -

Relao Linear entre duas variveis . . . . . . . . . . . . . . . . . . . .

22

Figura 5 -

Filtragem Hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

Figura 6 -

Arquitetura da plataforma Android . . . . . . . . . . . . . . . . . . . .

26

Figura 7 -

Comando para dar permisso a pasta. . . . . . . . . . . . . . . . . . . .

32

Figura 8 -

Diagrama de Casos de Uso do SR Soft. . . . . . . . . . . . . . . . . . .

33

Figura 9 -

Wireframes para o Desenvolvimento do Aplicativo. . . . . . . . . . . .

35

Figura 10 - Tela de Login. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

Figura 11 - Tela de Cadastro - Dados Pessoais. . . . . . . . . . . . . . . . . . . . .

37

Figura 12 - Classe Cadastro1REST - getCadastro1. . . . . . . . . . . . . . . . . . .

37

Figura 13 - Web Service - ProjetoSR-WS. . . . . . . . . . . . . . . . . . . . . . .

38

Figura 14 - Classe Cadastro1REST - inserirCadastro1. . . . . . . . . . . . . . . . .

38

Figura 15 - Cadastro - Interesses do usurio. . . . . . . . . . . . . . . . . . . . . .

39

Figura 16 - Cadastro - Domnio do usurio. . . . . . . . . . . . . . . . . . . . . . .

39

Figura 17 - Tela de Opes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

Figura 18 - Tela de Pessoas Cadastradas. . . . . . . . . . . . . . . . . . . . . . . .

40

Figura 19 - Tela de Avaliao dos Softwares. . . . . . . . . . . . . . . . . . . . . .

42

Figura 20 - Cdigo - class Login. . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

Figura 21 - Cdigo - class Cadastroperfil1. . . . . . . . . . . . . . . . . . . . . . .

50

Figura 22 - Cdigo - Menu de Opes (parte 1). . . . . . . . . . . . . . . . . . . .

51

Figura 23 - Cdigo - Menu de Opes (parte 2). . . . . . . . . . . . . . . . . . . .

52

Figura 24 - Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 1). . .

53

Figura 25 - Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 2). . .

54

Figura 26 - Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 3). . .

54

Lista de Tabelas
Tabela 1 -

Grau de Correlao entre Variveis . . . . . . . . . . . . . . . . . . . .

40

Tabela 2 -

Tabela de Valores da Classificao dos Usurios . . . . . . . . . . . . .

41

Tabela 3 -

Teste de Similaridade entre Usurios . . . . . . . . . . . . . . . . . . .

55

Lista de abreviaturas e siglas


ADT

Android Development Tools

API

Application Programming Interface

GPS

Sistema Global de Posicionamento

HTTP

Hyper Text Transfer Protocol

IA

Inteligncia Artificial

IDE

Integrated Development Environment

PDA

Personal Data Assistent

RAM

Random Access Memory

REST

Representational State Transfer

SDK

Software Development Kit

SGBD

Sistema Gerenciador de Banco de Dados

SO

Sistema Operacional

SOA

Service Oriented Architecture

SR

Sistema de Recomendao

SR Soft

Sistema de Recomendao de Softwares para Suporte Tcnico de


Computadores

URL

Uniform Resource Locator

WS

Web Service

WSO

Weighted Slope One

Sumrio

1 Introduo

15

2 Sistemas de Recomendao

17

2.1

Sistemas Colaborativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.2

Definio de Sistemas de Recomendao

. . . . . . . . . . . . . . . . . . . .

18

2.3

Classificao dos Sistemas de Recomendao . . . . . . . . . . . . . . . . . .

19

2.3.1

Filtragem Baseada em Contedo . . . . . . . . . . . . . . . . . . . . .

19

2.3.2

Filtragem Colaborativa . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.3.3

Filtragem Hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3 Desenvolvimento Para Dispositivos Mveis


3.1

3.2

25

Plataforma Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.1.1

Linguagem JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.1.2

Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.1.3

Desenvolvimento Com Android . . . . . . . . . . . . . . . . . . . . .

28

Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.2.1

29

Arquitetura REST

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 SR Soft - Sistema de Recomendao de Softwares para Suporte de Computadores 31


4.1

Instalao e Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

4.2

Modelagem do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.3

Funcionamento do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

5 Concluses e Trabalhos Futuros

43

5.1

Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.2

Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

Referncias

45

Apndice A -- Classe Login

49

Apndice B -- Classe Cadastro

50

Apndice C -- Algoritmo Menu de Opes do Aplicativo SR Soft

51

Apndice D -- Algoritmo Coeficiente de Correlao Linear de Pearson

53

Apndice E -- Teste do Algortmo Coeficiente de Correlao Linear de Pearson

55

15

Introduo
Com o avano da tecnologia, os meios de realizao de pesquisas se tornaram amplos,

assim como as informaes disponveis na Web, dificultando a escolha de contedos relevantes,


visto que a grande variedade de opes retornadas em uma pesquisa faz com que o leitor perca
muito tempo selecionando os dados que considera importante.
Atualmente h um grande desenvolvimento de tecnologias para comunicao mvel:
Smartphones, Tablets, PDAs, etc.. Esses dispositivos evoluem a cada dia e so muito populares,
por oferecerem cada vez mais recursos, tornando-se uma realidade no nosso cotidiano. Aparelhos mais modernos e completos requerem sistemas operacionais complexos e com grande
capacidade de gerenciamento, dentre os quais se podem citar: Windows Mobile, Symbian OS, e
Google Android.
Sistemas colaborativos so sistemas de interao que proporcionam maior facilidade de
se chegar a uma soluo. Um grupo consegue avaliar e obter uma soluo mais rpido do que
um indivduo isolado. Os sistemas de recomendao possibilitam ao usurio o conhecimento
de tens e/ou informaes variadas atravs da anlise do seu perfil e possivelmente da avaliao
positiva de outros usurios.
Com o objetivo de auxiliar o pesquisador a encontrar elementos que sejam do seu interesse, os sistemas de recomendao filtram essa diversidade de opes que so retornadas, com
base no seu perfil, identificando a pretenso do mesmo.
O Google Android, baseado no SO (Sistema Operacional) Linux, se mostrou o mais indicado para ser usado na atividade de desenvolvimento, por apresentar um sistema de desenvolvimento flexvel ao programador e por ter o cdigo-fonte aberto e de livre acesso aos desenvolvedores, alm de oferecer suporte a diversos servios e hardwares, o qual utiliza uma mquina
virtual Dalvik que pode converter o bytecode compilado a partir da mquina virtual Java em
bytecode da Dalvik . A plataforma Android, cuja arquitetura baseada em componentes, possui
integrao com IDEs populares como Eclipse e Netbeans e as aplicaes desenvolvidas so de
fcil instalao nos dispositivos.
Esse grande nmero de dispositivos tecnolgicos faz com que seja necessria a utilizao de softwares que atentem para o trabalho e entretenimento do usurio.
Existem muitos programas desenvolvidos para o suporte tcnico de computadores, porm poucos possuem a especificidade que o usurio procura ao realizar uma pesquisa. O obje-

16

tivo deste trabalho propor um Sistema de Recomendao para o Suporte Tcnico de Computadores que, a partir do perfil do usurio, faa recomendaes de softwares aprovados por outros
usurios com perfil semelhante, procurando assim sugerir programas que sejam relevantes para
sua necessidade.
Aps a introduo, que relatou sobre o conceito e objetivos do sistema sero apresentados os prximos captulos que esto organizados da seguinte forma:
Captulo 2 - So apresentados os conceitos de Sistemas de Recomendao, sua importncia para sociedade e sua classificao, apresentando as tcnicas disponveis para gerao
das recomendaes.
Captulo 3 - ostentado o desenvolvimento para dispositivos mveis, explicando sobre a
plataforma android, a linguagem JAVA utilizada para o desenvolvimento do sistema nessa
plataforma, e sobre a arquitetura do Android. Tambm ser tratado nesse captulo sobre o
conceito de WebService e da tcnica REST.
Captulo 4 - Ser mostrada a documentao e a implementao do sistema, abordando a
metodologia utilizada no desenvolvimento do aplicativo e os resultados obtidos, demonstrando os detalhes tcnicos necessrios para constituio dele. As ferramentas utilizadas
so melhor especificadas e explicadas nesse captulo.
Captulo 5 - Por fim, o captulo de concluso mostra os objetivos alcanados e os aspectos
positivos do sistema, com sugestes para trabalhos futuros.

17

Sistemas de Recomendao
Este captulo aborda o conceito e a importncia dos Sistemas de Recomendao, retrata

sobre sistemas colaborativos e mostra as tcnicas mais utilizadas para gerar as recomendaes
aos usurios.
Com o avano da tecnologia a Internet passou a ser uma das maiores ferramentas de
busca por informao, porm com a grande quantidade de arquivos e informaes disponveis
hoje em dia na Web acaba por acontecer um fenmeno conhecido como sobrecarga de informao (LOPES, 2007), dificultando assim ao usurio obter informaes realmente importantes
ao contexto de suas necessidades. Com o uso de sistemas de recomendao possvel a seleo
de itens (livros, softwares, msicas e etc.) com base no interesse dos usurios. Eles tm por objetivo auxiliar na obteno de informaes que sejam relevantes ao usurio, seja pela avaliao
do seu perfil ou pelo perfil do grupo, relata Cazzela (CAZELLA, 1998), para ento diminuir a
sobrecarga de informao.
Os sistemas de recomendao necessitam do estudo do comportamento dos usurios de
acordo com suas preferncias e com seu perfil, para que assim o mesmo possa enviar e receber
recomendaes. Esses sistemas fazem parte da rea da Inteligncia Artificial (IA) (CARDONA,
2010) e utilizam suas tcnicas para relacionar o interesse das pessoas em algum assunto especfico e a indicao de outras pessoas que possuam importncias em comum, para separar o que
seria mais importante para as mesmas.
Os Sistemas de Recomendao so utilizados com o objetivo de identificar usurios,
para a partir do armazenamento de suas preferncias recomendar os itens (BARCELLOS, 2007).
Eles almejam sugerir itens de um determinado domnio que melhor se encaixam no perfil de
interesse do usurio e assim realizar a recomendao.

2.1 Sistemas Colaborativos


Os sistemas colaborativos so ambientes que proporcionam o compartilhamento e a interao entre pessoas, visando assim facilidade em propagar informaes e aprendizagens, assim
como contedos fsicos (vdeos, msicas, programas e etc.). Atravs de ambientes colaborativos possvel obter melhores resultados pelo trabalho em grupo, podendo haver discusses,
reflexes e troca de experincias das pessoas envolvidas, dando assim suporte a realizao de

18

um objetivo comum (FILIPPETTO, 2011).


A medida que usurios trocam informaes e interagem uns com os outros, vai sendo
criada uma inteligncia coletiva. O termo inteligncia coletiva empregado para distinguir
o conhecimento que emerge da interao e da colaborao (GEROSA, 2009) entre pessoas
em vrios meios digitais como, por exemplo, em redes sociais, no e-commerce e em sistemas
de recomendao.
Os sistemas de recomendao so uma especificidade dos sistemas colaborativos, sendo
uma das reas de pesquisa em tcnicas para colaborao (ISOTANI, 2012). Para quem recebe a
recomendao, a colaborao funciona como um filtro ou uma interpretao especfica de uma
variedade de possibilidades normalmente difceis de se encontrar.

2.2 Definio de Sistemas de Recomendao


Segundo Barbosa (BARBOSA, 2009) os Sistemas de Recomendao (SR) so sistemas
que utilizam tcnicas computacionais para fazer a seleo de itens que satisfaam determinado
usurio, objetivando auxili-lo na obteno de informaes relevantes ao seu perfil.
De acordo com Mendez (MENDEZ, 2010) os Sistemas de Recomendao so sistemas
usados para identificar usurios do sistema, salvar em histrico suas preferncias e recomendar
itens que podem ser servios, produtos e /ou contedos, levando-se em considerao as necessidades e interesses do usurio e utilizando algoritmos de recomendao para gerar a sada, como
mostra a Figura 1.

Figura 1 Sistema de Recomendao


Disponvel em: <http://bd.iff.edu.br/acervo/um-sistema-de-recomendacao-para-locadoras-de-video-teresina2010/nsiimagegrain.2012-06-21.9940679673>

A colaborao em um SR ocorre no momento em que um usurio pode compartilhar


informaes e outros usurios possam deixar seu ponto de vista em relao a essa informao

19

partilhada, para que ento possam ser identificados contedos adequados para cada indivduo
com base em suas particularidades (CAZELLA, 1998).
Pelas definies citadas, percebe-se que o foco dos sistemas de recomendao satisfazer os usurios atravs de recomendaes baseadas nas suas precises e interesses e realizadas
atravs de tcnicas computacionais. Esses elementos compartilhados atravs das recomendaes proporcionam a colaborao do sistema.

2.3 Classificao dos Sistemas de Recomendao


Existem algumas tcnicas para a gerao da recomendao, que procuram auxiliar na
soluo de problemas que causam a sobrecarga de informaes. Essas tcnicas so tecnologias
que utilizam abordagens colaborativas para gerar uma recomendao, para melhor compreenso
dessa abordagem, podemos observar a afirmativa:
A abordagem colaborativa de recomendao mantm suas caractersticas principais
e consiste fundamentalmente em recomendar um artefato (e.g. um livro, um filme,
uma pgina da web) que foi preferido por usurios similares ao usurio que recebe a
recomendao (ALBUQUERQUE, 2008).

Os sistemas de recomendao podem ser classificados em trs divises principais: Filtragem baseada no contedo, Filtragem colaborativa e Filtragem Hbrida. Essas classificaes,
segundo Mack (MACK, 2010), se diferenciam pelo modo de utilizao dos padres de comportamento e relacionamento com os usurios.

2.3.1 Filtragem Baseada em Contedo


A abordagem de filtragem baseada em contedo (Content-based Filtering) aplicada
atravs da anlise de itens semelhantes ao que est sendo recomendado, que foram procurados anteriormente pelo usurio, podendo ento tambm ser alvo de interesse do mesmo. Essa
tcnica visa recomendar itens relacionados ao perfil do usurio.
O perfil do item consiste de algumas informaes que descrevam seu contedo, enquanto que o perfil do usurio criado de acordo com atributos que descrevam os interesses
do usurio com relao ao perfil dos itens. Para realizar a recomendao necessrio utilizar
funes de similaridade, ou seja, comparar a descrio de cada item com a descrio da necessidade do usurio, para fazer a anlise dos dois perfis traados visando satisfao do usurio
(LOPES, 2007).
Essa tcnica focaliza os algoritmos capazes de aprender as preferncias do usurio e
separar os itens que estejam mais prximos dessas prioridades (NODARI, 2008).
Uma desvantagem do uso dessa tcnica para gerao da recomendao ao usurio, de
acordo com Bezerra (BEZERRA, 2004), a limitao da representao do contedo dos itens,

20

pois em alguns casos apenas variveis de escalas quantitativas e qualitativas no so suficientes


para uma recomendao satisfatria. Lucas (LUCAS, 2010) declara que outra desvantagem do
uso dessa tcnica so os itens sinnimos, ou seja, itens iguais ou semelhantes mas com atributos
distintos, fazendo com que eles sejam tratados como diferentes.

2.3.2 Filtragem Colaborativa


Na filtragem colaborativa (Collaborative Filtering) analisa-se o perfil de um grupo de
usurios para selecionar os usurios que possuem perfil semelhante ao que receber a recomendao. A partir dessa seleo, a avaliao feita por esses usurios ser de total relevncia para a
realizao da recomendao. A filtragem colaborativa gera as recomendaes baseando-se em
avaliaes de outras pessoas com gostos semelhantes (NODARI, 2008).
Quando as pessoas precisam escolher algo sem ter conhecimento das opes natural
que elas procurem saber das experincias e opinies dos outros, buscando assim a recomendao de pessoas com quem tenha interesses em comum. Essa tcnica se baseia na anlise da
similaridade do interesse dessas pessoas pelos itens, para ento gerar a recomendao, ou seja
a filtragem baseada na avaliao feita pelos usurios daquele item, ao invs do contedo do
mesmo (BARBOSA, 2009).
Para encontrar a similaridade entre os usurios necessrio realizar o clculo do coeficiente de similaridade e o clculo da predio. Entende-se por clculo do coeficiente de
similaridade a etapa preliminar de um processo de Filtragem Colaborativa, e da seleo de
subconjuntos de usurios com maiores similaridades, denominados vizinhos, que sero considerados na etapa de predio (BARBOSA, 2009). Esses vizinhos so assim classificados
por possurem interesses semelhantes.
O Coeficiente de Correlao Linear de Pearson vastamente utilizado para realizar o
clculo da similaridade entre duas variveis, medindo assim o grau de relacionamento entre
elas, variando de -1 (sem correlao) a 1 (grande correlao) (BARBOSA, 2008).
J o clculo das predies feito para indicar o quo apropriado um item para determinado usurio (BARBOSA, 2009) e ela calculada sem dependncia com o coeficiente
utilizado para definir a similaridade entre os usurios.
Segundo Lucas (LUCAS, 2010) o uso dessa tcnica pode ter algumas desvantagens, tais
como:
Arranque a Frio - Acontece quando um usurio ou item novo entra no sistema e h
poucas informaes sobre ele. Apresenta-se assim, dificuldade de encontrar itens semelhantes a um determinado item ou de encontrar usurios semelhantes a um novo usurio.
Classificaes Falsas - Est relacionado a possibilidade de existir usurio com classifi-

21

caes que no correspondem as suas preferncias reais.


A Filtragem Colaborativa subdividida em duas categorias: a filtragem baseada no item
que analisa as avaliaes atribuidas a um determinado item e a filtragem baseada no usurio que
observa o perfil dos usurios, atentando para seus interesses. O algoritmo SlopeOne, do tipo
baseada no item, destaca-se nesse meio por ser uma abordagem simples e eficiente (SOUZA,
2012).
Coeficiente de Correlao de Pearson
O Coeficiente de Correlao uma das criaes do estatstico britnico Karl Pearson (1857-1936), conhecido como o criador da Estatstica Aplicada (BENITEZ, 2007). Devido
ao nome do coeficiente de correlao, muitos acreditam que essa medida estatsca foi desenvolvida unicamente por Karl Pearson, mas como relata Stanton (STANTON, 2001) a origem
desse coeficiente um trabalho conjunto de Pearson com Sir Francis Galton, cientista do sculo
19, que colaborou no desenvolvimento com noes modernas de correlao e regresso. Esse
coeficiente geralmente representado pela letra r, sua frmula demonstrada na Figura 2:

Figura 2 Frmula Coeficiente de Correlao de Pearson


Disponvel em: <http://medstatweb.med.up.pt/cursop/regressao/imagens/formula_correlacao.gif>

De acordo com Filho (FILHO, 2009) uma definio do conceito do Coeficiente de Correlao de Pearson em uma frase seria: uma medida de associao linear entre variveis.
O mesmo aponta que as palavras associao e linearidade so chaves para entender o coeficiente, pois duas variveis iro se associar apartir do compartilhamento de varincia e essa
variao ser distribuida linearmente.
Esse mtodo criado para medir a correlao entre duas variveis, pode ser usado na
Anlise de Componentes Principais, Anlise Fatorial, Anlise de Confiabilidade, entre outras
(LIRA, 2004).
De acordo com Casarotto (CASAROTTO, 2012) o sinal obtido como resultado do Coeficiente de Correlao de Pearson indica o sentido da correlao (positiva ou negativa), ou seja,
se elas so diretamente ou inversamente proporcionais e o valor numrico indica a intensidade
(oscila entre -1 e 1), sendo -1 uma correlao negativa perfeita, 1 uma correlao positiva perfeita e 0 a ausncia de relao linear. Quanto mais prximo o valor chegar de 1, maior ser a

22

correlao positiva entre as variveis e quanto mais prximo de -1, maior a correlao negativa,
como pode ser visto na Figura 3.

Figura 3 Sentido e intensidade do Coeficiente de Correlao de Pearson


Disponvel em: <http://ensino.univates.br/chaet/Materiais/Bioestatistica_3.pdf>

Podemos observar na Figura 4 um exemplo da variao conjunta entre duas variveis


representadas em um plano cartesiano (X, Y) ou grfico de disperso, para demonstrar o grau de
relacionamento entre elas. No quadro A as variveis x e y possuem uma relao linear negativa,
ou seja, elas crescem em sentido contrrio, se x cresce, y diminui e vice-versa. No quadro B,
podemos observar uma relao linear positiva, as variveis x e y crescem no mesmo sentido.
No quadro C, as variveis em questo, no apresentam nenhuma relao e no D no h relao
linear entre elas.

Figura 4 Relao Linear entre duas variveis


Disponvel em: <http://www.de.ufpb.br/ luiz/AED/Aula9.pdf>

Mtodo SlopeOne
Atualmente tem-se utilizado a abordagem colaborativa baseada em tens para o desenvolvimento de vrios SR. O Weighted Slope One (WSO) segue essa abordagem e, apesar de ser

23

um algoritmo simples, possui o desempenho comparado ao de algoritmos de referncia (SANTOS, 2012).


O algoritmo denominado Slope One foi uma proposta feita por Daniel Lemire e Anna
Maclachlan, para sistemas colaborativos baseados em itens (MACLACHLAN, 2005) e calcula
a predio, ou seja, a suposta avaliao que um usurio daria para determinado item.
Em concordncia com Souza (SOUZA, 2012), o algoritmo SlopeOne supe que o usurio atribuir notas no binrias aos itens expostos. O algoritmo compara avaliaes de outros
usurios a esses determinados itens, para ento predizer qual seria a nota dada pelo usurio que
ainda no avaliou esse item, como por exemplo:
Usurio A avaliou os itens x com nota 3 e y com nota 4.5.
Usurio B avaliou o item x com nota 3.5.
A provvel nota que o usurio B daria para o item y seria igual a 5.
O clculo da predio se d da seguinte forma:
(Nota de A a item x - Nota de A a item y) = (Nota de B a item x - Predio de B em y)
Ento:
(3 - 4.5) = (3.5 - P)
P = 3.5 + 1.5
P=5
Apesar de ser uma algoritmo simples, o Slope One possui pontos fortes a serem destacados (SANTOS, 2012):
As avaliaes realizadas pelos usurios induzem diretamente nas recomendaes feitas
pelo sistema. Diferente dos sistemas baseados no usurio, cujas similaridades so calculadas de vez em quando e no quando h novas avaliaes.
Os novos usurios so alvos, com poucas avaliaes feitas, de recomendaes apropriadas.
Algumas experincias apontam que o algoritmo Slope One mostra-se preciso como um
algoritmo de referncia, tanto baseados no usurio, como baseados em tens (MACLACHLAN, 2005).

2.3.3 Filtragem Hbrida


A filtragem hbrida (Hybrid Filtering) utiliza as duas tcnicas citadas: filtragem baseada
em contedo e filtragem colaborativa (figura 5). A vantagem de se utilizar as duas tcnicas, d-

24

se pelo fato de que:


As duas abordagens so complementares. Nesse sentido vrios estudos sugerem formas de combinar as tcnicas de filtragem baseada em contedo com as tcnicas de
filtragem colaborativa, com o propsito de resolver suas limitaes intrnsecas (PEREIRA, 2010)

Figura 5 Filtragem Hbrida


Disponvel em: <http://kessia.blogs.unipar.br/files/2008/07/sistemas-de-recomendacao.pdf>

Uma das grandes motivaes para a criao de sistemas hbridos (PEREIRA, 2010) o
aumento da qualidade de recomendaes, ao mesmo tempo em que torna o sistema resultante
menos suscetvel s desvantagens de uma das tcnicas componentes.

25

Desenvolvimento Para Dispositivos


Mveis
O nmero de usurios de dispositivos mveis (tablets, smartphones, etc.) cresce a cada

dia, incentivado pela maneira como os fabricantes vem oferecendo aparelhos cada vez mais
completos (CRUZ, 2011). So diversos os aplicativos criados para os mesmos e que agradam
toda uma sociedade, alm dos servios oferecidos, tais como: utilizao da tecnologia Wireless
para transmisso de informaes sem o uso de fio, uso do Sistema Global de Posicionamento
(GPS), de diversos sensores (acelermetro, de presena, etc), entre outros recursos.
A escolha por aplicaes baseadas em web cresce em relao a aplicativos pelas vantagens de disponibilidade ao usurio, menor custo com taxas de manuteno e compatibilidade
com mltiplas plataformas (LOPES, 2013). Porm, tambm existem desvantagens de se utilizar aplicaes web, como o caso de uma conexo lenta com a Internet resultar em demora na
execuo da aplicao e na maior preocupao que se deve ter com a segurana dos dados.

3.1 Plataforma Android


O Android uma plataforma de cdigo aberto prprio para dispositivos mveis, baseado no sistema operacional Linux e com um ambiente de desenvolvimento flexvel e poderoso
(SILVA e BRACHT, 2010). Alm do Android, existem outros sistemas operacionais para dispositivos mveis, tais como: Symbian OS, Iphone OS e Windows Mobile. No entanto podemos
destacar a vantagem de se utilizar o Android, Cruz (CRUZ, 2011) refere que o sistema operacional Google Android, se mostrou o mais recomendado para ser trabalhado, por ter sido
arquitetado visando fornecer maior flexibilidade ao programador, alm de seu cdigo-fonte ser
de livre acesso para comunidade de desenvolvedores. Cruz frisa ainda que h a possibilidade de
instalar tal sistema em dispositivos que no o portam nativamente, aumentando assim o nmero
de aparelhos suscetveis a receber o aplicativo.
O Android oferece diversas alternativas de linguagens de programao, como por exemplo: Java (adotada pela Google para o desenvolvimento de aplicaes para a plataforma mvel),
C/C++, .NET Framework, Scala, Lua e Python.

26

3.1.1 Linguagem JAVA


Java a linguagem de programao orientada a objetos, desenvolvida pela Sun Microsystems, capaz de criar tanto aplicativos para desktop, aplicaes comerciais, softwares robustos, completos e independentes, aplicativos para a Web (SOBRAL, 2008). Uma das vantagens dessa linguagem so os mecanismos oferecidos para garantir a segurana dos aplicativos.
Ao escrever programas, na linguagem JAVA, podem ser gerados Applets, Aplicativos ou
ainda Servlets. Para a execuo de aplicativos necessrio ter um interpretador instalado na
mquina. O JDK (Java Developement Kit) um kit de desenvolvimento para a linguagem JAVA
que abrange compilador, interpretador e utilitrios (SOBRAL, 2008).
O JAVA tambm pode ser utilizado para programao de aplicativos para dispositivos
mveis, como o caso do desenvolvimento de aplicativos para Android, que utiliza um kit
prprio denominado SDK.

3.1.2 Arquitetura
A arquitetura do sistema Android introduz a concepo de integrao e flexibilidade, ou
seja, os aplicativos que so fornecidos juntamente com o sistema podem interagir ou at mesmo
serem substituidos por aplicaes diversas que no so nativas do sistema (CRUZ, 2011).
Segundo Silva (SILVA, 2010), a estrutura da arquitetura Android dividida em cinco
camadas, responsveis pelo gerenciamento de processos, so elas: Aplicativos, Framework,
Ambiente de Execuo, Bibliotecas e Kernel Linux. A Figura 6 mostra essas cinco camadas
que o Android estabelece e como o relacionamento entre elas.

Figura 6 Arquitetura da plataforma Android


Disponvel em: <http://blog.clubedaprogramacao.com/2011/12/26/android-parte-2-historia/>

27

Aplicativos: onde se encontram os aplicativos desenvolvidos em Java que so executados pelo sistema. Alguns aplicativos j so disponibilizados pela plataforma Android, como
por exemplo: calendrios, navegador, mapas, etc.
Frameworks: observa-se que o desenvolvimento do mesmo est voltado para o uso de
APIs (Application Programming Interface) das aplicaes chaves do Android. So elas:
Activity - basicamente uma tela do Android, uma atividade que funciona como interface
visual da aplicao com a qual o usurio ir interagir. Cada activity independentes uma
da outra.
Service - a classe responsvel pelas tarefas que so executadas em segundo plano, que
permite criar um servio. No possui uma interface visual para o usurio.
BroadCastReceiver - o componente que tem a funo de receber e reagir a uma mensagem do SO. um mecanismo de alerta.
ContentProvider - o provedor de contedo que serve para compartilhar um conjunto especfico de dados para outras aplicaes do Android, assim como recuperar ou armazenar
dados em um repositrio.
Intent - o objeto que contm as mensagens que so utilizadas para facilitar a ligao
entre os componentes da aplicao, descrevendo a ao e o que se deseja executar.
View - todo componente da interface grfica do Android, usado para definir os objetos
visuais exibidos na tela.
Bibliotecas: uma coleo de bibliotecas C/C++ utilizadas por vrios componentes do
sistema. Adaptadas para Linux, essas bibliotecas so responsveis por dispor diversos formatos
de vdeo e udio, funes de grficos, imagens e acesso a banco de dados e navegador. Tais funcionalidades esto disponveis aos desenvolvedores atravs do framework de aplicao. Abaixo
so apresentadas algumas dessas bibliotecas encontradas na plataforma Android:
System C Library (libc) - Implementao aprimorada da biblioteca C para dispositivos
baseados em Linux.
Media Library - esta biblioteca suporta os principais tipos de imagem, udio e vdeo,
permitindo a gravao e a reproduo desses formatos.
Surface Manager - responsvel por gerenciar o acesso ao subsistema de exibio do dispositivo.
LibWebCore - engine moderna para web browsers. Moderno navegador Android.
SGL - engine para grficos 2D subjacentes.

28

3D Libraries - biblioteca utilizada tanto para acelerao de hardware como de software.


FreeType - biblioteca utilizada para renderizao de fontes vetoriais e/ou bitmap.
SQLite - banco de dados relacional leve e poderoso utilizado para o gerenciamento de
dados por qualquer aplicao.
Ambiente de Execuo: nessa camada localiza-se a mquina virtual do Android, a
Dalvik, otimizada especialmente para dispositivos mveis. A Dalvik foi desenvolvida para ter
suporte a mltiplas instncias rodando ao mesmo tempo, assim cada aplicao pode rodar seu
processo em uma instncia da mquina.
Kernel Linux: composta pelo Kernel do Linux, responsvel pelos principais servios do
sistema, como gerenciamento de memria, segurana e gerenciamento de processos. Utilizado
como base do sistema operacional Android, foi desenvolvido de acordo com as necessidades e
peculiaridades dos dispositivos mveis.

3.1.3 Desenvolvimento Com Android


Segundo Lecheta (LECHETA, 2010) o Android, plataforma de desenvolvimento para
aplicativos mveis, utiliza a linguagem Java para desenvolvimento das aplicaes, aproveitando
todos os recursos disponveis.
O Android conta com uma loja virtual, a Android Market, que permite ao desenvolvedor
disponibilizar uma aplicao gratuitamente para o usurio final, ou ganhar com a sua venda,
expe (MARTINS, 2009) (ARIMA, 2009a).
Uma das grandes apostas dessa plataforma a disponibilidade do Android SDK (Software Development Kit), que composta por um conjunto de softwares para dispositivos mveis,
um middleware, aplicativos e um sistema operacional (PEREIRA, 2010).

3.2 Web Service


Web Service uma aplicao distribuda para web, cuja comunicao feita principalmente por HTTP (Hyper Text Transfer Protocol), que disponibiliza seus componentes para
serem utilizados em dispositivos diversos (KALIN, 2010). Kalin, afirma ainda que, uma das
principais vantagens de um web service a transparncia de linguagem, ou seja, o cliente e
os seus servios no necessariamente precisam ser escritos em uma mesma linguagem para
interagirem.
Segundo Paulino (PAULINO, 2008) um WebService uma maneira de apresentar funcionalidade para usurios web atravs de protocolos da Internet padro. Os WS (Web Service)

29

aplicam a arquitetura orientada a servios (SOA - Service Oriented Architecture), porm, podem ser gerados componentes SOA com tecnologias que no sejam WS, pois os (Web Service)
so instancias dessa coleo de servios.
Os WSs podem exercer a funo de integrar sistemas independentes, via web, tornando
acessveis recursos de uma ou mais aplicaes de forma definida (PISA, 2012).
De acordo com Lima (LIMA, 2012) h trs papis importantes incorporados a arquitetura de um WS, so eles: Provedor de Servios, Consumidor de Servios, e o Registro de
Servios. Abaixo so citadas a funo de cada um desses papis:
Provedor de Servios: Responsvel pela execuo e liberao dos Web Services na Internet, ou seja, pela publicao da definio de um determinado servio. O servio deve
ser descrito em um formato padro, de fcil compreenso e deve ter suas caractersticas
publicadas em um registro central disponvel.
Consumidor de Servios: a pessoa que utiliza a descrio disponvel na Internet, que
foi disponibilizada por um provedor de servios, para encontrar o servio implementado.
Registro de Servios: Refere-se ao local aonde o servio se encontra. Contm informaes tcnica dos servios e os detalhes da empresa.

3.2.1 Arquitetura REST


O REST (Representational State Transfer), criado por um dos autores do protocolo
HTTP (Dr. Roy Fielding, em 2000), um modelo estruturado que possui as capacidades do
protocolo como plataforma. Atualmente, essa tcnica de engenharia pode ser usada para descrever qualquer interface web. Se destaca como competncias usadas pelo REST, os distintos
mtodos de comunicao (GET, POST, PUT, DELETE, HEAD, OPTIONS) e a declarao de
arquivos como recursos (cada um deles com seu prprio endereo) (GONCALVES, 2012).
Fielding buscou as prticas consideradas timas nos estilos de arquiteturas atuais para
constituir um estilo novo, que reunisse todas elas, o qual ficou conhecido como REST. Este
estilo de arquitetura constituido, basicamente, por dois papis: Cliente e Servidor. O cliente
faz um requerimento para o servidor e o servidor disponibiliza servios para que o cliente possa
fazer uso (LIMA, 2012).
Conforme relata Laube (LAUBE, 2009), para construo de um WebService com base
na tcnica REST so necessrios apenas: um cliente, um servio, a informao, uma forma de
encapsular essa informao (XML, JSON, etc.) e um meio para acess-la (HTTP).
De acordo com (SAUDATE, 2012) a principal explicao para o xito dessa tcnica se
d pelos padres e capacidades do protocolo HTTP, onde cada um dos mtodos possui uma

30

funo diferente. Saudate expe ainda que esse modelo to relacionado ao HTTP organizado
com base em alguns princpios que proporcinaram sucesso a prpria web. Estes princpios so:
URLs bem precisas para recursos, ou seja, cada recurso precisa ter uma URL bem definida. Outros parmetros, que no estejam includos na definio dos recursos, podem
ser passados como forma de anexo URL. Essas seguem uma estrutura hierrquica, ou
seja, o elemento que vem a seguir est relacionado com o elemento anterior.
Uso dos mtodos HTTP em conformidade com seus propsitos. Os WebServices REST
podem ter mtodos HTTP bem definidos para realizao das operaes. Atravs de diferentes mtodos HTTP, pode-se tanto utilizar recursos existentes como criar novos.
Uso de headers HTTP de forma efetiva. Os headers HTTP possuem a descrio ou as
caractersticas a respeito daquilo que se est comunicando/recebendo do servidor.
Uso de cdigos de status HTTP para realizar a comunicao com os servios e facilitar o
reconhecimento do estado da requisio (se teve sucesso ou no).
Uso de Hipermdia como motor de estado da aplicao. Ao se solicitar uma pgina web
obtemos, em conjunto com o texto, diversos recursos adicionais: imagens, scripts, etc.
Estes recursos geralmente no esto presentes no HTML, mas apenas as referncias a eles.
Roy Fielding sups que seria interessante se cada revinda de recurso trouxesse URLs para
novas operaes, ao invs de conservar as URLs para recursos na prpria aplicao.

31

SR Soft - Sistema de Recomendao


de Softwares para Suporte de
Computadores
Este captulo descreve o modelo proposto neste trabalho. Ser detalhada a tecnologia

utilizada, assim como o funcionamento e a implementao do Sistema de Recomendao de


Softwares para Suporte de Computadores, mostrando assim os resultados obtidos.
As atividades do Projeto de Trabalho de Concluso de Curso Sistema de Recomendao
de Softwares para Suporte de Computadores foram: o estudo sobre os sistemas de recomendao, onde foram analisadas as tcnicas possveis para realizao das recomendaes para a
partir dessa anlise escolher a que melhor se aplicaria ao projeto em desenvolvimento. Seguido
do estudo sobre programao para Android, nessa fase houve a instalao dos softwares necessrios, tais como: o SDK, que contm o emulador e todas as ferramentas necessrias para o
desenvolvimento, a IDE (Integrated Development Environment) de Desenvolvimento Eclipse,
as plataformas necessrias para o SDK, o plugin ADT (Android Development Tools), fornecido pelo Google, que permitiu criar projetos do tipo Android e test-los no emulador. Aps as
instalaes, foi criada uma configurao virtual (AVD), para que o emulador pudesse simular
exatamente uma configurao de um celular real;
Os demais passos para a implementao do sistema foram: o desenvolvimento de aplicativos simples para o aprendizado na linguagem JAVA para Android, o desenvolvimento de diagramas com a simulao do funcionamento do sistema, a criao de um prottipo do sistema,
atravs de wireframes, a criao de um Banco de Dados com PostgreSQL usando o pgAdmin III,
a instao do Apache2 Tomcat para criao de um servidor local, estudo e implementao de
um WebService e o desenvolvimento do Sistema de Recomendao de Softwares para Suporte
de Computadores.

4.1 Instalao e Configurao


O SO usado para fornecer a gerncia e a interao das tarefas no decorrer do desenvolvimento da aplicao foi o Linux Ubuntu 12.04 LTS 32-bit, software livre e que no precisa de
programas anti-vrus. Foram necessrias a instalao de vrios programas, bibliotecas e plugins
para a implementao do sistema, assim como a configurao dos mesmos, citados abaixo:

32

Eclipse: O IDE Eclipse verso Juno foi utilizado para implementao do aplicativo,
usando como linguagem de desenvolvimento JAVA em ambiente Linux, seguindo o modelo open source de desenvolvimento de software.
SDK: O kit de desenvolvimento para Android SKD verso 1.7.0, foi instalado e configurado para implementao de aplicativos.
ADT: O plugin ADT (Android Development Tools) verso 22.0.5 foi instalado no Eclipse,
para o desenvolvimento Android.
PostgreSQL 9.1.9: A escolha desse SGBD (Sistema Gerenciador de Banco de Dados) se
deu por ele ser um poderoso banco de dados, de cdigo fonte aberto.
PgAdmin III: Escolhido por ser uma ferramenta para administrao do banco de dados
PostgreSQL totalmente gratuita.
Apache 2.2: Um dos mais usados e bem sucedidos servidores web, compatvel com o
protocolo HTTP, e um software gratuito.
Aps a instalao da IDE Eclipse e do kit de desenvolvimento SDK, faz-se necessrio
dar permisso de acesso as pastas recentemente instaladas, observando sua localizao, para que
no ocorra o risco da classe R, classe gerada automaticamente na criao de um projeto Android,
responsvel pela comunicao do cdigo JAVA com o XML, no ser gerada, impossibilitando
assim, o correto funcionamento do Android. Essa permisso pode ser dada atravs do comando
mostrado na figura 7.

Figura 7 Comando para dar permisso a pasta.


O AVD, responsvel por carregar a imagem do sistema e simular o hardware e software de um sistema Android, foi configurado da seguinte forma: verso 2.2 (API level 8) do
Sistema Operacional Android, Screen 4.0 (correspondente ao tamanho da tela do dispositivo),
resoluo(px) 350 X 600 e memria RAM (Random Access Memory) de 512 MB.

4.2 Modelagem do Sistema


Com o objetivo de se ter uma viso externa do sistema foi criado um Diagrama de
Casos de Uso do SR Soft (Figura 8) para representar graficamente os atores, os casos de uso e
os relacionamentos entre eles, ou seja, para descrever as principais funcionalidades do sistema
do ponto de vista do usurio.

33

Figura 8 Diagrama de Casos de Uso do SR Soft.

Descrio dos casos de uso do SR Soft:


Receber recomendao:
Ator: Usuario, Vizinho.
Comunicao 1: O usurio tem a opo de aceitar ou excluir a recomendao.
Comunicao 2: O usurio tem a opo de o item que lhe foi recomendado.
Descrio: Responsvel por receber as recomendaes feitas pelos usurios.
Fazer avaliao:
Ator: Usuario, Vizinho.
Descrio: Responsvel por fazer a avaliao dos softwares cadastrados.
Fazer cadastro:
Ator: Usuario, Vizinho.
Descrio: Responsvel por fazer o cadastro dos dados do perfil do usurio.
Visualizar vizinhos:
Ator: Usuario, Vizinho.
Descrio: Responsvel por listar as informaes dos usurios com perfil semelhante ao usurio ativo.

34

Enviar Recomendao:
Ator: Sistema de Recomendao.
Descrio: Responsvel por enviar as recomendaes de acordo com as predies.
Fazer Predio:
Ator: Sistemas de Recomendao.
Comunicao: Aps o clculo da predio, vizinhos podero ser selecionados.
Descrio: Responsvel por predizer a nota que o usurio dar para o item.
Selecionar Vizinhos:
Ator: Sistemas de Recomendao.
Descrio: Responsvel por avaliar a similaridade entre os usurios cadastrados.

4.3 Funcionamento do Sistema


O Sistema de Recomendao de Softwares para Suporte de Computadores foi desenvolvido para plataforma Android e atender usurios que desejem conhecer softwares que possam
ser relevantes as suas necessidades e interesses, a partir de avaliaes de outros usurios com
caractersticas comuns.
O usurio ao ser cadastrado no sistema poder fazer ou receber recomendaes de
softwares (edio de vdeos, manuteno tcnica, redes de computadores, etc), assim como
conhecer o perfil de outras pessoas (com quem tenha interesses em comum).
A Figura 9 mostra os wireframes do sistema, criados no incio do projeto, como um
prottipo visual do possvel layout e funcionalidades da aplicao.
O sistema consiste em um aplicativo para fins de colaborao, onde os usurios cadastrados podero interagir uns com os outros atravs da avaliao de softwares.

35

Figura 9 Wireframes para o Desenvolvimento do Aplicativo.


Nesse sistema o usurio ir fazer seu cadastro especificando caractersticas importantes,
para determinar seu perfil, que direcionaro a quais softwares ele poder ter interesse (wireframes B, C e D) e de quais pessoas ele poder receber recomendaes. Aps o cadastro, o
usurio poder se logar no sistema (wireframe A). Esse login importante para que o mesmo
possua uma identificao, tornando possvel assim, avaliar a existncia de perfis similares, para
gerar uma ligao, onde outros usurios estaro vinculados a uma rede que pode ser denominada vizinhana. Aps logado, o usurio ter um menu de opes (Wireframe F), onde
poder decidir por: verificar se h softwares recomendados (wireframe H), onde os vizinhos
so responsveis por fazer as avaliaes dos softwares cadastrados e os que forem avaliados positivamente sero recomendados aos demais usurios vinculados; avaliar softwares cadastrados
(wireframe G) atribuindo uma nota de 1 a 5 quele item, de acordo com sua avaliao e essa
servir de recomendao para outros usurios vizinhos; conhecer o perfil de pessoas com
caractersticas semelhantes as suas (wireframe I), de quem poder receber ou fazer recomendaes e; cadastrar softwares (wireframe E), abordando especificidades relevantes a anlise do
usurio, tais como: nome, rea a que se aplica, link para download e descrio tcnica. Essa
ltima funcionalidade ser implementada como trabalho futuro, inicialmente os softwares j
esto cadastrados, aguardando as avaliaes dos usurios.
Aps instalar o aplicativo no dispositivo mvel, o usurio precisar se logar no sistema

36

para ter acesso as funcionalidades do aplicativo, se o mesmo ainda no tiver um login, precisar
primeiramente fazer seu cadastro, para ento ser admitido. A tela referente ao login (Figura 10)
a primeira tela do sistema, dando as opes para o usurio se logar ou realizar o cadastro. O
cdigo referente a implementao da classe Login, pode ser visto no Apndice A.

Figura 10 Tela de Login.


O usurio ao escolher a opo para fazer seu cadastro, na tela de login, ser direcionado
para tela seguinte (figura 11), onde dever especificar o usurio e a senha que sero usados
para a autenticao, assim como outros dados responsveis pela formao do seu perfil. O
cdigo para implementao dessa funcionalidade de insero dos dados cadastrados pode ser
observado no Apndice B.
Aps realizar o cadastro dos dados pessoais, o usurio dever especificar as reas de
interesse e domnio, para que outros usurios possam avaliar o perfil de quem recebeu recomendao. Ao total, o sistema possui trs telas de cadastro, na primeira exigida informaes
simples e relevantes para proporcionar a interao entre as pessoas cadastradas, tais como:
nome, e-mail, telefone, e cidade onde reside, na segunda tela (Figura 15) o usurio poder escolher reas em que tenha o interesse de receber softwares e na terceira (Figura 16) poder
especificar reas ao qual tenha experincia ou domnio de programas referentes a rea citada.
O intuito dessas trs telas de cadastro obter informaes relevantes sobre as pessoas cadastradas que possam contribuir para a interao entre as mesmas, possibilitando para o usurio, no
apenas a recomendao dos softwares, mas o conhecimento dos interesses e domnios de cada

37

um. Os dados para contato torna possvel a colaborao entre eles.

Figura 11 Tela de Cadastro - Dados Pessoais.


As informaes inseridas pelo usurio so enviadas para o servidor para serem armazenadas em um banco de dados. Essa interao se d atravs do uso de Web Service, onde o cliente
faz uma requisio HTTP simples e o servidor Web Service faz um retorno com os dados processados. Na classe Cadastro1REST (Figura 12) pode-se observar a conexo do cliente com o
servidor atravs da requisio via URL, onde coloca-se o nome do servidor criado, e o nome da
classe que ir conectar o cliente ao Web Service (Figura 13).

Figura 12 Classe Cadastro1REST - getCadastro1.

38

Figura 13 Web Service - ProjetoSR-WS.

A Figura 14 mostra a interao da aplicao com o Web Service no quesito armazenar os


dados do perfil do usurio.

Figura 14 Classe Cadastro1REST - inserirCadastro1.

Aps a realizao do cadastro, o usurio poder acessar a aplicao, logo aps a verificao
do usurio e da senha. Depois da tela de login, aparecer para o utente um menu de opes (Figura 17) com as funcionalidades oferecidas pelo sistema e esse poder escolher a prxima ao
a ser executada. As alternativas disponveis so: Conhecer Vizinhos, Softwares Recomendados,
Avaliar Item e Sair. O cdigo do menu pode ser visto no Apndice C.

39

Figura 15 Cadastro - Interesses do usurio.

Figura 16 Cadastro - Domnio do usurio.

No quadro Conhecer Vizinhos ser listado o perfil das pessoas cadastradas no sistema
que possuem interesses similares aos do usurio em questo, como pode-se observar na Figura
18. Atravs dessa listagem de perfis possvel conhecer as pessoas que possuem caractersticas
em comum, pela rea de interesse e domnio cadastrada, e tambm facilitar a comunicao entre
os vizinhos, pelas informaes de contato presentes no perfil listado.

Figura 17 Tela de Opes.

40

Para calcular a similaridade entre os usurios, foi utilizado o Coeficiente de Correlao


Linear de Pearson, para determinar se a correlao entre os mesmos positiva, negativa ou
se no h correlao entre eles. O algortmo do clculo desse coeficiente de correlao est
presente no Apndice D. possvel distinguir os usurios com gostos semelhantes, atravs de
resultados que variam entre -1 (forte relao negativa) e 1 (forte relao positiva), sendo que o
resultado 0 equivale a ausncia de relao entre os dados comparados.

Figura 18 Tela de Pessoas Cadastradas.


A Tabela 1 mostra os valores atribuidos ao resultado do coeficiente de correlao. A
partir do resultado 0.5 o usurio ser considerado vizinho, tendo ele correlao mdia ou
alta. Raramente encontra-se resultados que constem forte relao positiva (0.9 ou 1), devido a
variedade de itens e tendncias de cada pessoa.
Resultado do Coeficiente
Intensidade da Correlao
-1 a -0.9
Forte Correlao Negativa
0.8 a 0.5
Mdia Correlao Negativa
0.4 a 0.1
Baixa Correlao Negativa
0
No h Correlao
0.1 a 0.4
Baixa Correlao Positiva
0.5 a 0.8
Mdia Correlao Positiva (vizinho)
0.9 a 1
Alta Correlao Positiva (vizinho)
Tabela 1 Grau de Correlao entre Variveis
A Tabela 3 (Apndice E) apresenta o resultado da similaridade do teste de correlao
feito com vinte e seis (26) alunos do 3o ao 8o perodo, do Curso Bacharelado em Sistemas de

41

Informao da Universidade Federal do Piau, Campus Senador Helvdio Nunes de Barros. O


teste consistiu em analisar a similaridade entre um usurio, nomidado A e os demais usurios
apresentados, com base nas notas que os mesmos deram quinze (15) softwares relacionados a
rea de programao, manuteno e multimdia. O resultado da similaridade entre os usurios
foi obtida atravs do clculo do Coeficiente de Correlao Linear de Pearson. Como pode-se
observar na tabela citada, no houve resultados de coeficiente com valor acima de 0.6 e dos vinte
e cinco (25) usurios comparados com o usurio A, apenas quatro (4) foram considerados
vizinhos (B, D, J e Y).
Para o clculo desse coeficiente so necessrios dois vetores dispostos com notas de
determinados usurios a para programas especficos. Atravs da comparao entre a quantidade
de avaliaes com valores prximos ou anlogos, pode-se perceber a semelhana entre o gosto
de certos usurios, determinando assim a similaridade entre os usurios cadastrados.
O algortmo que calcula o Coeficiente de Correlao Linear de Pearson est presente no
Apncide C. Na class Formula(), podemos observar o mtodo getPearson() que retorna o resultado final do coeficiente, assim como os mtodos necessrios para construo da frmula: N(),
retorna o total de nmeros presentes no vetor; Sx(), calcula o somatrio dos nmeros presentes
no primeiro vetor; Sy(), calcula o somatrio dos nmeros do segundo vetor; SPxx(), calcula
o somatrio dos nmeros do primeiro vetor ao quadrado; SPyy(), calcula o somatrio dos nmeros do segundo vetor ao quadrado; SPxy(), calcula o somatrio do produto dos nmeros do
vetor 1 pelos do vetor 2; setArray(), corresponde a declarao dos vetores que sero usados na
frmula.
Na opo Softwares Recomendados ser listado os softwares que foram avaliados
positivamente pelos vizinhos do usurio, ou seja, que tiveram nota 4 ou 5. A quantidade de
estrelas marcadas corresponder a nota que o usurio deu ao item, representando assim o valor
atribudo a classificao de acordo com a Tabela 2:
Nmero de Estrelas Valor da Marcao
1 estrela
Pssimo
2 estrelas
Ruim
3 estrelas
Regular
4 estrelas
Bom
5 estrelas
Excelente
Tabela 2 Tabela de Valores da Classificao dos Usurios
O clculo da predio prev que um determinado software poder ser avaliado positivamente pelo usurio. O mtodo de recomendao usado para calcular a predio foi o SlopeOne,
que segundo Souza (SOUZA, 2012) apesar de ser de fcil implementao, uma abordagem
eficiente, escalvel e que apresenta bons resultados prticos.
No quadro Avaliar Item (figura 19), so mostrados todos os softwares cadastrados

42

no sistema que aguardam a avaliao do usurio, o mesmo visualizar as informaes de um


software por vez, podendo passar para o item seguinte ou retornar ao anterior quando achar necessrio. Para realizar a avaliao, o usurio dever marcar o nmero de estrelas correspondente
a sua anlise e ento clicar no boto Avaliar. Essa nota que cada usurio atribui aos softwares
cadastrados, ser utilizada tanto no clculo do Coeficiente de Correlao Linear de Pearson,
para avaliar a similaridade dos usurios, como no clculo SlopeOne, para predizer qual nota o
usurio daria para determinado software com base nas notas dadas pelos vizinhos, e ento
gerar as recomendaes.

Figura 19 Tela de Avaliao dos Softwares.

43

Concluses e Trabalhos Futuros

5.1 Concluses
O trabalho proposto foi desenvolvido com o objetivo de apresentar o Sistema de Recomendao de Softwares para Suporte de Computadores, nomeado de SR Soft. O sistema foi
desenvolvido para dispositivos mveis com plataforma Android, voltado para discentes e docentes do curso Sistemas de Informao e reas afins, podendo ser usado por pessoas de diferentes
reas com interesse em softwares de programao, manuteno, entre outros.
Com o aplicativo Sr Soft possvel oferecer aos usurios da rea de Tecnologia da Informao a recomendao de softwares que possivelmente sejam do seu interesse e a possibilidade
de avaliar itens que podero ser recomendados a pessoas com perfil semelhante, proporcionando
a colaborao entre os usurios.
Com o desenvolvimento do Sistema de Recomendao de Softwares para Suporte de
Computadores foi possvel a utilizao de WebService como uma soluo para estabelecer a
comunicao da aplicao com o banco de dados. O uso dessa tecnologia se faz interessante
quando uma aplicao necessitar requisitar tarefas de outra aplicao que no use a mesma
linguagem de programao ou que esteja em sistemas diferentes.
O WebService foi construdo inspirado nos princpios da arquitetura REST, onde, em
geral, usa-se as URLs (Uniform Resource Locator) para o acesso de recursos. Utilizando o
REST pode-se ter um servio implementado de maneira simples para a criao de um WebService.
O Android possui um SGBD nativo da plataforma, o SQLite, que foi usado inicialmente
na implementao da aplicao e depois substitudo pelo PostgreSQL. Apesar de ser uma base
de dados leve e poderosa, o SQLite, armazena dados localmente, possuindo um limite de 2TB
para esse armazenamento, alm de no ser recomendado em situaes onde o banco de dados
poder ser acessado ao mesmo tempo em diversos dispositivos por meio de um sistema de
arquivos de redes. O PostgreSQL por sua vez, um SGBD com armazenamento de dados
ilimitado (AGUILAR, 2010) que atendeu bem aos requisitos esperados pela aplicao.
No foi conseguido sanar o problema de trazer os dados para os clculos de correlao
e predio, sendo esses inseridos para realizao dos testes.

44

5.2 Trabalhos Futuros


Atualmente as recomendaes realizadas pelo SR Soft so feitas utilizando apenas Filtragem Colaborativa, por atender bem aos resultados esperados com base na proposta.
Para trabalhos futuros, so os novos objetivos a serem realizados: (a) inserir a opo
do usurio cadastrar os softwares, dando aos mesmos no apenas a opo de avaliar e receber
recomendaes mas tambm de inserir novos itens para serem avaliados e recomendados; (b)
inserir novos critrios para avaliao da similaridade dos usurios, analisando alm do perfil de
notas semelhantes atribuidas pelos mesmos, o seu perfil pessoal de interesses; e (c) prover todas
as informaes diretamente do servidor para gerao das recomendaes.

45

Referncias
AGUILAR, Emlio Hernandez. Banco de Dados PostgreSQL. In: . Centro Paula Souza
- Competncia em Educao Pblica Profissional, 2010. Disponvel em: <http:
//gilbertexbom.com/bd2/2InfoN_110/postgresql.pdf>.

ALBUQUERQUE, Fernando M. Figueira Filho Paulo Lcio de Geus; Joo Porto de.
Sistemas de Recomendao e Interao na Web Social. I Workshop de Aspectos da Interao
Humano-Computador na Web Social, 2008. ISBN 978-85-7669-213-3. Disponvel em:
<http://www.ic.unicamp.br/~fmarques/papers/websocial_ihc08.pdf>.
Acesso em: 04 mai 2013.

BARBOSA, Slvio Csar Cazella; Eliseo Berni Reategui; Munique Machado; Jorge Luis V.
Recomendao de Objetos de Aprendizagem Empregando Filtragem Colaborativa. XX
Simpsio Brasileiro de Informtica na Educao, Universidade do Vale do Rio dos Sinos UNISINOS, 2009. Disponvel em: <http://ceie-sbc.educacao.ws/pub/index.php/
sbie/article/download/1158/1061>. Acesso em: 04 mai 2012.

BARBOSA, Slvio Csar Cazella; Irismar Corra das Chagas; Jorge Luis V. Um Modelo
para Recomendao de Artigos Acadmicos Baseado em Filtragem Colaborativa Aplicado a
Ambientes Mveis. CINTED-UFRGS, Dezembro 2008.
BARCELLOS, Daniela Leal Musa; Andr Luiz Brando; Mariusa Warpechowski;
Carla Duarte. Sistema de Recomendao Acadmico para Apoio a Aprendizagem. CINTEDUFRGS, 2007. Disponvel em: <http://seer.ufrgs.br/renote/article/view/
14236>. Acesso em: 12 abr 12.

BENITEZ, Jorge Alberto Castro. Vinheta Histrica Karl Pearson Sesquicentenrio de seu
Nascimento. VITALLE, Rio Grande/RS-Brasil, v. 19, n. 2, p. 79, 2007.
BEZERRA, Byron Leite Dantas. Uma Soluo em Filtragem de Informao para Sistemas
de Recomendao Baseada em Anlise de Dados Simblicos. Dissertao (Mestrado), 2004.
Disponvel em: <http://www.liber.ufpe.br/teses/arquivo/20040930134807.
pdf>.

CARDONA, Sidnei Renato Silveira: Mrcio A. SRISA: Desenvolvimento de um Sistema


de Recomendao para Instalao de Som Automotivo. V WET Workshop de Engenharia
e Tecnologia - IV CCTEC Congresso de Cincia e Tecnologia do Vale do Taquari,
2010. Disponvel em: <http://ensino.univates.br/~cetec/wet/anais2010/
C07-wet2010.pdf>. Acesso em: 18 jul 2012.

CASAROTTO, Alberto Cargnelutti Filho; Sidinei Jos Lopes; Betnia Brum; Marcos
Toebe; Tatiani Reis da Silveira; Gabriele. Sample size to estimate the Pearson correlation
coefficient among characters of castor bean. Semina: Cincias Agrrias, Londrina, junho 2012.
Disponvel em: <http://www.uel.br/revistas/uel/index.php/semagrarias/
article/download/6638/10821>. Acesso em: 10 ago 2013.

46

CAZELLA, Silvio Csar; Jonas Vinicius Drumm; Jorge Luis V. Barbosa. Um Servio de
para Recomendao de Artigos Cientficos Baseado em Filtragem de Contedo Aplicado a
Dispositivos Mveis. V.8 no 3. Universidade Federal do Rio Grande do Sul: Novas Tecnologias
na Educao, 1998.
CRUZ, Bruno Henrique Andrade; Josu Fernandes Dall Agnese; Bruno Jos Fagundes;
Marcelo Teixeira Bastos; Rolf Fred Molz; Jacques Nelson Corleta Schreiber. Desenvolvimento
de uma Aplicao Embarcada em Celular Visando Controle de Rob Via Wi-Fi.
Revista brasileira de computao aplicada (issn 2176-6649). v. 3, n. 1, p. 43-52. DOI:
10.5335/rbca.2011.005: [s.n.], 2011.
FILHO, Jos Alexandre da Silva Jnior; Dalson Britto Figueiredo. Desvendando os Mistrios
do Coeficiente de Correlao de Pearson (r). Revista Poltica Hoje, 2009. Disponvel em:
<http://www.revista.ufpe.br/politicahoje/index.php/politica/article/
viewFile/6/6>. Acesso em: 13 ago 2013.

FILIPPETTO, Alexsandro ; Giovane Barcelos; Marcelo Batista; Clovis da Silveira. Grupos


de Estudos Baseados em Ferramentas Colaborativas. Revista iTEC, 2011. Disponvel
em: <http://www.facos.edu.br/old/index.php?option=com_content&view=
article&id=1327&Itemid=377>. Acesso em: 27 mar 12.

GEROSA, Marco Aurlio. CWTools (Collaborative Web Tools): Componentes de


software para interao social e inteligncia coletiva. RPN, 2009. Disponvel em:
<http://www.rnp.br/pd/gts2009-2010/gt_cwtools.html>.
GONCALVES, Ricardo Frenedoso Da Silva; Pablo Rodrigo. Web Services: Uma anlise
comparativa. Janeiro/Dezembro 2012.
ISOTANI, Seiji. Sistemas Colaborativos, Fundamentos e Aplicaes. Laboratrio de
Engenharia de Software, Departamento de Sistemas de Informao, Universidade de So
Paulo, 2012. Disponvel em: <http://disciplinas.stoa.usp.br/pluginfile.php/
24164/mod_resource/content/1/SISTEMAS%20COLABORATIVOS.pdf>.

KALIN, Martin. Java Web Services: Implementando. Rio de Janeiro: [s.n.], 2010. Disponvel
em: <http://www.altabooks.com.br, publisher=Alta Books>.
LAUBE, Klaus Peter. Webservices: Conhecendo o REST. PTI, 2009. Disponvel em: <http:
//www.profissionaisti.com.br/2009/03/webservices-conhecendo-o-rest/>.
Acesso em: 16 ago 2013.

LIMA, Jean Carlos Rosrio. Web Services (SOAP X REST). Faculdade de Tecnologia de So
Paulo, 2012. Disponvel em: <http://www.fatecsp.br/dti/tcc/tcc00056.pdf>.
LIRA, Sachiko Araki. Anlise de Correlao:: Abordagem terica e de construo dos
coeficientes com aplicaes. 196 f. Dissertao (Dissertao apresentada ao Curso de
Ps-Graduao em Mtodos Numricos em Engenharia dos Setores de Cincias Exatas e
de Tecnologia, como requisito parcial obteno do Grau de "Mestre em Cincias")
Universidade Federal do Paran, Curitiba, 2004.
LOPES, Giseli Rabelo. Sistema de Recomendao para Bibliotecas Digitais Sob a Perspectiva
da Web Semntica. 69 f. Dissertao (Programa de Ps-Graduao em Computao)
Universidade Federal do Rio Grande do Sul, Porto Alegre, 2007.

47

LOPES, Srgio. A Web Mobile: Programe para um mundo de muitos dispositivos. [S.l.]: Casa
do Cdigo, 2013.
LUCAS, Andr de Trigueiros Pino. Recomendao de Programas de Televiso. 90 p.
Dissertao (Programa de Ps-Graduao em Engenharia Informtica e de Computadores)
Universidade Tcnica de Lisboa, 2010.
MACK, Roger Schneider. Sistema de recomendao baseado na localizao e perfil utilizando
a plataforma android. In: . Universidade Federal do Rio Grande do Sul, 2010. Disponvel
em: <http://www.lume.ufrgs.br/bitstream/handle/10183/28328/000767836.
pdf?sequence=1>.

MACLACHLAN, Daniel Lemire; Anna. Slope one predictors for online rating-based
collaborative filtering. In: Proceedings of SIAM Data Mining (SDM05). [s.n.], 2005.
Disponvel em: <http://www.daniel-lemire.com/fr/documents/publications/
lemiremaclachlan_sdm05.pdf>.

MENDEZ, Sidnei Renato Silveira; Daniel Loureiro. SRFit -Sistema Inteligente para apoio
Recomendao de Treinos Fsicos. Faculdade de Informtica Centro Universitrio Ritter dos
Reis (UniRitter), 2010. Disponvel em: <http://ensino.univates.br/~cetec/wet/
anais2010/C06-wet2010.pdf>. Acesso em: 04 mai 2012.

NODARI, Antnio Rgis. Os Sistemas de Recomendao como Instrumento para Atingir


Mercados de Nicho. In: . Universidade de Caxias do Sul, 2008. Disponvel em: <http:
//www.ucs.br/ucs/tplPOSAdministracao/posgraduacao/strictosensu/
administracao/dissertacoes/dissertacao?identificador=212>.

PAULINO, Andr Luiz da Silva. Teste Baseado em Defeitos para Web Services. Dissertao
(Programa de Ps-Graduao em Informtica) Universidade Federal do Paran, 2008.
PEREIRA, Pedro Romo. Sistema de Recomendao para Condutores de Veculos Eltricos.
104 p. Dissertao (Dissertao de natureza cientfica realizada para obteno do grau de
Mestre em Engenharia Informtica e de Computadores) Instituto Superior de Engenharia
de Lisboa, rea Departamental de Engenharia de Eletrnica e Telecomunicaes e de
Computadores, 2010.
PISA, Rodrigo Dantas da Silva; Felipe Ren Oliveira. WebGraphs - Plataforma para
armazenamento e execuo de algoritmos sobre grafos atravs da Web . In: . Universidade
Federal do Paran, 2012. Disponvel em: <http://www.inf.ufpr.br/andre/files/
PisaSilva2012.pdf>.

SANTOS, Romenigue Mendes Barbosa Vieira dos. Recomendao de Notcias. 85 f.


Dissertao (Dissertao para obteno do Grau de Mestre em Engenharia Informtica e de
Computadores) Universidade Tcnica de Lisboa, Lisboa, 2012.
SAUDATE, Alexandre. SOA aplicado: Integrando com web service e alm. So Paulo: Casa
do Cdigo, 2012. ISBN 9788575221846.
SILVA, Andria Michelle da Cunha de Noronha; rica Rossana Pinto Correia; Thiago Pereira
Nunes e. Jogo para Aplicativos Mveis Utilizando o Android. In: . Braslia - DF: Universidade
Catlica de Braslia, 2010. Disponvel em: <http://www.trabalhosfeitos.com/
ensaios/Android/237389.html>.

48

SOBRAL, Daniela Barreiro Claro; Joo Bosco Mangueira. Programao em Java.


Florianpolis, SC: Copyleft Pearson Education, 2008.
SOUZA, Renata Ghisloti Duarte de. Sistemas de Recomendao: Aplicando sistemas de
recomendao em situaes prticas. IBM, 2012. Disponvel em: <http://www.ibm.com/
developerworks/br/local/data/sistemas_recomendacao/>.

STANTON, Jeffrey M. Galton, Pearson, and the peas: : A brief history of linear
regression for statistics instructors. Journal of Statistical Education, 2001. Disponvel em:
<http://www.amstat.org/publications/JSE/v9n3/stanton.html>. Acesso em:
14 ago 2013.

49

APNDICE A -- Classe Login


Essa classe tem a funo de verificar se o usurio e a senha digitados conferem com os
referidos dados cadastrados no Banco.
Figura 20 Cdigo - class Login.

50

APNDICE B -- Classe Cadastro


A classe Cadastroperfil1 responsvel por obter os dados digitados nos EditText pertinentes
ao perfil simplificado do usurio (Nome, E-mail, Cidade, etc.) e mandar para o Banco de Dados,
com o uso de Webservice.
Figura 21 Cdigo - class Cadastroperfil1.

51

APNDICE C -- Algoritmo Menu de Opes do


Aplicativo SR Soft
Figura 22 Cdigo - Menu de Opes (parte 1).

52

Figura 23 Cdigo - Menu de Opes (parte 2).

53

APNDICE D -- Algoritmo Coeficiente de


Correlao Linear de Pearson
A classe Formula, recebe as notas atribuidas aos vetores referentes as avaliaes de dois
usurios para calcular o Coeficiente de Correlao Linear de Pearson.
Figura 24 Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 1).

54

Figura 25 Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 2).

Figura 26 Cdigo - Algortmo Coeficiente de Correlao de Pearson (parte 3).

55

APNDICE E -- Teste do Algortmo Coeficiente de


Correlao Linear de Pearson
Usurios Comparados
A-B
A-C
A-D
A-E
A-F
A-G
A-H
A-I
A-J
A-K
A-L
A-M
A-N
A-O
A-P
A-Q
A-R
A-S
A-T
A-U
A-V
A-W
A-X
A-Y
A-Z

Resultado do Coeficiente
0.59
0.27
0.52
0.49
0.37
0.06
0.39
0.43
0.51
0.04
0.49
0.23
- 0.01
0.11
0.25
0.30
- 0.26
0.22
0.29
0.22
0.27
0.33
0.17
0.53
0.44

Situao da Similaridade
Mdia Correlao Positiva (vizinho)
Baixa Correlao Positiva
Mdia Correlao Positiva (vizinho)
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Mdia Correlao Positiva (vizinho)
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Correlao Negativa
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Correlao Negativa
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Baixa Correlao Positiva
Mdia Correlao Positiva (vizinho)
Baixa Correlao Positiva

Tabela 3 Teste de Similaridade entre Usurios

You might also like