Sistema de Recomendação de Softwares Para Suporte de Computadores Com o Uso de Filtragem...

56
Universidade Federal do Piauí Campus Senador Helvídio Nunes de Barros Curso Bacharelado em Sistemas de Informação Francisca Pâmela Carvalho dos Santos Sistema de Recomendação de Softwares para Suporte de Computadores com o uso de Filtragem Colaborativa PICOS 2013

description

Trabalho de conclusão de curso, ano 2013, de autoria de Francisca Pâmela Carvalho dos Santos, ex aluna da UFPI.O objetivo do trabalho foi o desenvolvimento de um SR de softwares para o suporte técnico de computadores, para plataforma Android.

Transcript of Sistema de Recomendação de Softwares Para Suporte de Computadores Com o Uso de Filtragem...

  • Universidade Federal do PiauCampus Senador Helvdio Nunes de Barros

    Curso Bacharelado em Sistemas de Informao

    Francisca Pmela Carvalho dos Santos

    Sistema de Recomendao de Softwares para Suporte deComputadores 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 deBacharelado em Sistemas de Informao do Campus SenadorHelvdio Nunes de Barros da Universidade Federal do Piaucomo parte dos requisitos para obteno do Grau de Bacharelem Sistemas de Informao, sob orientao da ProfessoraMsc. Juliana Oliveira de Carvalho.

    PICOS

    2013

  • Dedico este trabalho a Deus, pelo dom da vida e por guiar sempre osmeus passos, sem Ele eu nada sou. Dedico tambm aos meus pais, aquem tenho como exemplo de perseverana e humildade e a minha irm(eterna cmplice), amo muito vocs! Enfim dedico a finalizao dessetrabalho 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 curiosidadetem sua prpria razo de existir.

    Albert Einstein

    No deixe o barulho da opinio dos outros abafar sua voz interior. E maisimportante, tenha a coragem de seguir seu corao e sua intuio. Eles dealguma 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 reco-

    mendaes 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 apli-

    caes 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 softwa-

    res 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 25

    3.1 Plataforma Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.1.1 Linguagem JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3.1.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3.1.3 Desenvolvimento Com Android . . . . . . . . . . . . . . . . . . . . . 28

    3.2 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3.2.1 Arquitetura REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    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

    1 Introduo

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

    assim como as informaes disponveis naWeb, 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. Apa-

    relhos 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 inte-

    resse, 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 in-

    dicado para ser usado na atividade de desenvolvimento, por apresentar um sistema de desenvol-

    vimento flexvel ao programador e por ter o cdigo-fonte aberto e de livre acesso aos desenvol-

    vedores, 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 utiliza-

    o de softwares que atentem para o trabalho e entretenimento do usurio.

    Existem muitos programas desenvolvidos para o suporte tcnico de computadores, po-

    rm 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 Computa-

    dores 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 apresenta-

    dos os prximos captulos que esto organizados da seguinte forma:

    Captulo 2 - So apresentados os conceitos de Sistemas de Recomendao, sua importn-cia para sociedade e sua classificao, apresentando as tcnicas disponveis para gerao

    das recomendaes.

    Captulo 3 - ostentado o desenvolvimento para dispositivos mveis, explicando sobre aplataforma 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 ametodologia utilizada no desenvolvimento do aplicativo e os resultados obtidos, demons-

    trando 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 aspectospositivos do sistema, com sugestes para trabalhos futuros.

  • 17

    2 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 infor-

    mao (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 ob-

    jetivo 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 espec-

    fico 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 inte-

    rao entre pessoas, visando assim facilidade em propagar informaes e aprendizagens, assim

    como contedos fsicos (vdeos, msicas, programas e etc.). Atravs de ambientes colabora-

    tivos 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 necessi-

    dades 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:

    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 satisfa-

    zer os usurios atravs de recomendaes baseadas nas suas precises e interesses e realizadas

    atravs de tcnicas computacionais. Esses elementos compartilhados atravs das recomenda-

    es 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 principaise 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 arecomendao (ALBUQUERQUE, 2008).

    Os sistemas de recomendao podem ser classificados em trs divises principais: Fil-

    tragem baseada no contedo, Filtragem colaborativa e Filtragem Hbrida. Essas classificaes,

    segundo Mack (MACK, 2010), se diferenciam pelo modo de utilizao dos padres de compor-

    tamento 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 procura-

    dos 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, en-

    quanto 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 neces-

    sidade 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 recomen-

    dao. 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 recomen-

    dao 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 co-

    eficiente 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 consi-

    derados 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 de-

    terminado 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 hpoucas informaes sobre ele. Apresenta-se assim, dificuldade de encontrar itens seme-

    lhantes 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 Pear-

    son (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 desen-

    volvida 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:

    De acordo com Filho (FILHO, 2009) uma definio do conceito do Coeficiente de Cor-

    relao 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 co-

    eficiente, 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 Coe-

    ficiente 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 per-

    feita 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:

    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 relaolinear entre elas.

    Figura 4 Relao Linear entre duas variveis

    Disponvel em:

    Mtodo SlopeOne

    Atualmente tem-se utilizado a abordagem colaborativa baseada em tens para o desen-

    volvimento 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 (SAN-

    TOS, 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 usu-

    rio 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 desta-

    cados (SANTOS, 2012):

    As avaliaes realizadas pelos usurios induzem diretamente nas recomendaes feitaspelo sistema. Diferente dos sistemas baseados no usurio, cujas similaridades so calcu-

    ladas de vez em quando e no quando h novas avaliaes.

    Os novos usurios so alvos, com poucas avaliaes feitas, de recomendaes apropria-das.

    Algumas experincias apontam que o algoritmo Slope One mostra-se preciso como umalgoritmo de referncia, tanto baseados no usurio, como baseados em tens (MACLA-

    CHLAN, 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 for-mas de combinar as tcnicas de filtragem baseada em contedo com as tcnicas defiltragem colaborativa, com o propsito de resolver suas limitaes intrnsecas (PE-REIRA, 2010)

    .

    Figura 5 Filtragem Hbrida

    Disponvel em:

    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

    3 Desenvolvimento Para DispositivosMveis

    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 tecnologiaWireless

    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 van-

    tagens de disponibilidade ao usurio, menor custo com taxas de manuteno e compatibilidade

    com mltiplas plataformas (LOPES, 2013). Porm, tambm existem desvantagens de se utili-

    zar 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, base-

    ado 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 dis-

    positivos 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 ope-

    racional 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 exem-

    plo: Java (adotada pelaGoogle 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 Mi-

    crosystems, capaz de criar tanto aplicativos para desktop, aplicaes comerciais, softwares ro-

    bustos, completos e independentes, aplicativos para a Web (SOBRAL, 2008). Uma das vanta-

    gens 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:

  • 27

    Aplicativos: onde se encontram os aplicativos desenvolvidos em Java que so execu-tados 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 deAPIs (Application Programming Interface) das aplicaes chaves do Android. So elas:

    Activity - basicamente uma tela do Android, uma atividade que funciona como interfacevisual 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, quepermite criar um servio. No possui uma interface visual para o usurio.

    BroadCastReceiver - o componente que tem a funo de receber e reagir a uma mensa-gem do SO. um mecanismo de alerta.

    ContentProvider - o provedor de contedo que serve para compartilhar um conjunto es-pecfico 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 ligaoentre 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 objetosvisuais exibidos na tela.

    Bibliotecas: uma coleo de bibliotecas C/C++ utilizadas por vrios componentes dosistema. 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 fun-

    cionalidades 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 dispositivosbaseados 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 dis-positivo.

    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 dedados por qualquer aplicao.

    Ambiente de Execuo: nessa camada localiza-se a mquina virtual do Android, aDalvik, 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 (Soft-

    ware 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 princi-

    palmente 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 fun-

    cionalidade 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, po-

    dem 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 arqui-

    tetura 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 In-ternet, 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, quefoi disponibilizada por um provedor de servios, para encontrar o servio implementado.

    Registro de Servios: Refere-se ao local aonde o servio se encontra. Contm informa-es 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 des-

    crever 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 de-finida. 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 RESTpodem ter mtodos HTTP bem definidos para realizao das operaes. Atravs de dife-

    rentes 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 ascaractersticas 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 oreconhecimento do estado da requisio (se teve sucesso ou no).

    Uso de Hipermdia como motor de estado da aplicao. Ao se solicitar uma pgina webobtemos, em conjunto com o texto, diversos recursos adicionais: imagens, scripts, etc.

    Estes recursos geralmente no esto presentes noHTML, 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

    4 SR Soft - Sistema de Recomendaode Softwares para Suporte deComputadores

    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 recomenda-

    o, 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 neces-

    srios, 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), forne-

    cido 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 apli-

    cativos simples para o aprendizado na linguagem JAVA para Android, o desenvolvimento de di-

    agramas 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 desenvol-

    vimento 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 mo-

    delo open source de desenvolvimento de software.

    SDK: O kit de desenvolvimento para Android SKD verso 1.7.0, foi instalado e configu-rado 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) sedeu por ele ser um poderoso banco de dados, de cdigo fonte aberto.

    PgAdmin III: Escolhido por ser uma ferramenta para administrao do banco de dadosPostgreSQL totalmente gratuita.

    Apache 2.2: Um dos mais usados e bem sucedidos servidores web, compatvel com oprotocolo 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 soft-

    ware 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 seme-lhante 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 desenvol-

    vido 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 cadas-

    trados 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 (wire-

    frames 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 denomi-

    nada 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 po-

    sitivamente 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 recomen-

    daes 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 reco-

    mendao. 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 es-

    colher 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 cadastra-

    das 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 armazena-

    das 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 pro-

    cessados. 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 (Fi-

    gura 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 Negativa0.8 a 0.5 Mdia Correlao Negativa0.4 a 0.1 Baixa Correlao Negativa

    0 No h Correlao0.1 a 0.4 Baixa Correlao Positiva0.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 resul-

    tado 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 n-

    meros 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 Marcao1 estrela Pssimo2 estrelas Ruim3 estrelas Regular4 estrelas Bom5 estrelas Excelente

    Tabela 2 Tabela de Valores da Classificao dos Usurios

    O clculo da predio prev que um determinado software poder ser avaliado positiva-

    mente 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 ne-

    cessrio. 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

    5 Concluses e Trabalhos Futuros

    5.1 Concluses

    O trabalho proposto foi desenvolvido com o objetivo de apresentar o Sistema de Re-

    comendao de Softwares para Suporte de Computadores, nomeado de SR Soft. O sistema foi

    desenvolvido para dispositivos mveis com plataforma Android, voltado para discentes e docen-

    tes 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 Infor-

    mao 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 WebSer-

    vice.

    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 Fil-

    tragem 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: .

    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 InteraoHumano-Computador na Web Social, 2008. ISBN 978-85-7669-213-3. Disponvel em:.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. XXSimpsio Brasileiro de Informtica na Educao, Universidade do Vale do Rio dos Sinos -UNISINOS, 2009. Disponvel em: . Acesso em: 04 mai 2012.

    BARBOSA, Slvio Csar Cazella; Irismar Corra das Chagas; Jorge Luis V. Um Modelopara Recomendao de Artigos Acadmicos Baseado em Filtragem Colaborativa Aplicado aAmbientes Mveis. CINTED-UFRGS, Dezembro 2008.

    BARCELLOS, Daniela Leal Musa; Andr Luiz Brando; Mariusa Warpechowski;Carla Duarte. Sistema de Recomendao Acadmico para Apoio a Aprendizagem. CINTED-UFRGS, 2007. Disponvel em: . Acesso em: 12 abr 12.

    BENITEZ, Jorge Alberto Castro. Vinheta Histrica Karl Pearson Sesquicentenrio de seuNascimento. VITALLE, Rio Grande/RS-Brasil, v. 19, n. 2, p. 79, 2007.

    BEZERRA, Byron Leite Dantas. Uma Soluo em Filtragem de Informao para Sistemasde Recomendao Baseada em Anlise de Dados Simblicos. Dissertao (Mestrado), 2004.Disponvel em: .

    CARDONA, Sidnei Renato Silveira: Mrcio A. SRISA: Desenvolvimento de um Sistemade Recomendao para Instalao de Som Automotivo. V WET Workshop de Engenhariae Tecnologia - IV CCTEC Congresso de Cincia e Tecnologia do Vale do Taquari,2010. Disponvel em: . Acesso em: 18 jul 2012.

    CASAROTTO, Alberto Cargnelutti Filho; Sidinei Jos Lopes; Betnia Brum; MarcosToebe; Tatiani Reis da Silveira; Gabriele. Sample size to estimate the Pearson correlationcoefficient among characters of castor bean. Semina: Cincias Agrrias, Londrina, junho 2012.Disponvel em: . Acesso em: 10 ago 2013.

  • 46

    CAZELLA, Silvio Csar; Jonas Vinicius Drumm; Jorge Luis V. Barbosa. Um Servio depara Recomendao de Artigos Cientficos Baseado em Filtragem de Contedo Aplicado aDispositivos Mveis. V.8 no 3. Universidade Federal do Rio Grande do Sul: Novas Tecnologiasna Educao, 1998.

    CRUZ, Bruno Henrique Andrade; Josu Fernandes Dall Agnese; Bruno Jos Fagundes;Marcelo Teixeira Bastos; Rolf Fred Molz; Jacques Nelson Corleta Schreiber. Desenvolvimentode 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 Mistriosdo Coeficiente de Correlao de Pearson (r). Revista Poltica Hoje, 2009. Disponvel em:. Acesso em: 13 ago 2013.

    FILIPPETTO, Alexsandro ; Giovane Barcelos; Marcelo Batista; Clovis da Silveira. Gruposde Estudos Baseados em Ferramentas Colaborativas. Revista iTEC, 2011. Disponvelem: . Acesso em: 27 mar 12.

    GEROSA, Marco Aurlio. CWTools (Collaborative Web Tools): Componentes desoftware para interao social e inteligncia coletiva. RPN, 2009. Disponvel em:.

    GONCALVES, Ricardo Frenedoso Da Silva; Pablo Rodrigo. Web Services: Uma anlisecomparativa. Janeiro/Dezembro 2012.

    ISOTANI, Seiji. Sistemas Colaborativos, Fundamentos e Aplicaes. Laboratrio deEngenharia de Software, Departamento de Sistemas de Informao, Universidade de SoPaulo, 2012. Disponvel em: .

    KALIN, Martin. Java Web Services: Implementando. Rio de Janeiro: [s.n.], 2010. Disponvelem: .

    LAUBE, Klaus Peter. Webservices: Conhecendo o REST. PTI, 2009. Disponvel em: .Acesso em: 16 ago 2013.

    LIMA, Jean Carlos Rosrio. Web Services (SOAP X REST). Faculdade de Tecnologia de SoPaulo, 2012. Disponvel em: .

    LIRA, Sachiko Araki. Anlise de Correlao:: Abordagem terica e de construo doscoeficientes com aplicaes. 196 f. Dissertao (Dissertao apresentada ao Curso dePs-Graduao em Mtodos Numricos em Engenharia dos Setores de Cincias Exatas ede 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 Perspectivada 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.]: Casado 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 utilizandoa plataforma android. In: . Universidade Federal do Rio Grande do Sul, 2010. Disponvelem: .

    MACLACHLAN, Daniel Lemire; Anna. Slope one predictors for online rating-basedcollaborative filtering. In: Proceedings of SIAM Data Mining (SDM05). [s.n.], 2005.Disponvel em: .

    MENDEZ, Sidnei Renato Silveira; Daniel Loureiro. SRFit -Sistema Inteligente para apoio Recomendao de Treinos Fsicos. Faculdade de Informtica Centro Universitrio Ritter dosReis (UniRitter), 2010. Disponvel em: . Acesso em: 04 mai 2012.

    NODARI, Antnio Rgis. Os Sistemas de Recomendao como Instrumento para AtingirMercados de Nicho. In: . Universidade de Caxias do Sul, 2008. Disponvel em: .

    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 deMestre em Engenharia Informtica e de Computadores) Instituto Superior de Engenhariade Lisboa, rea Departamental de Engenharia de Eletrnica e Telecomunicaes e deComputadores, 2010.

    PISA, Rodrigo Dantas da Silva; Felipe Ren Oliveira. WebGraphs - Plataforma paraarmazenamento e execuo de algoritmos sobre grafos atravs da Web . In: . UniversidadeFederal do Paran, 2012. Disponvel em: .

    SANTOS, Romenigue Mendes Barbosa Vieira dos. Recomendao de Notcias. 85 f.Dissertao (Dissertao para obteno do Grau de Mestre em Engenharia Informtica e deComputadores) Universidade Tcnica de Lisboa, Lisboa, 2012.

    SAUDATE, Alexandre. SOA aplicado: Integrando com web service e alm. So Paulo: Casado Cdigo, 2012. ISBN 9788575221846.

    SILVA, Andria Michelle da Cunha de Noronha; rica Rossana Pinto Correia; Thiago PereiraNunes e. Jogo para Aplicativos Mveis Utilizando o Android. In: . Braslia - DF: UniversidadeCatlica de Braslia, 2010. Disponvel em: .

  • 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 derecomendao em situaes prticas. IBM, 2012. Disponvel em: .

    STANTON, Jeffrey M. Galton, Pearson, and the peas: : A brief history of linearregression for statistics instructors. Journal of Statistical Education, 2001. Disponvel em:. Acesso em:14 ago 2013.

  • 49

    APNDICE A -- Classe LoginEssa 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 CadastroA 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 doAplicativo SR Soft

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

  • 52

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

  • 53

    APNDICE D -- Algoritmo Coeficiente deCorrelao 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 deCorrelao Linear de Pearson

    Usurios Comparados Resultado do Coeficiente Situao da SimilaridadeA - B 0.59 Mdia Correlao Positiva (vizinho)A - C 0.27 Baixa Correlao PositivaA - D 0.52 Mdia Correlao Positiva (vizinho)A - E 0.49 Baixa Correlao PositivaA - F 0.37 Baixa Correlao PositivaA - G 0.06 Baixa Correlao PositivaA - H 0.39 Baixa Correlao PositivaA - I 0.43 Baixa Correlao PositivaA - J 0.51 Mdia Correlao Positiva (vizinho)A - K 0.04 Baixa Correlao PositivaA - L 0.49 Baixa Correlao PositivaA - M 0.23 Baixa Correlao PositivaA - N - 0.01 Correlao NegativaA - O 0.11 Baixa Correlao PositivaA - P 0.25 Baixa Correlao PositivaA - Q 0.30 Baixa Correlao PositivaA - R - 0.26 Correlao NegativaA - S 0.22 Baixa Correlao PositivaA - T 0.29 Baixa Correlao PositivaA - U 0.22 Baixa Correlao PositivaA - V 0.27 Baixa Correlao PositivaA - W 0.33 Baixa Correlao PositivaA - X 0.17 Baixa Correlao PositivaA - Y 0.53 Mdia Correlao Positiva (vizinho)A - Z 0.44 Baixa Correlao Positiva

    Tabela 3 Teste de Similaridade entre Usurios