Page 1

FUNDAÇÃO PAULISTA DE TECNOLOGIA E EDUCAÇÃO UNILINS – CENTRO UNIVERSITÁRIO DE LINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FILIPE LANDU NZONGO MICHEL AKIRA MATUYOSHI

DESENVOLVIMENTO DE E-COMMERCE BASEADO EM SISTEMA DE RECOMENDAÇÃO

LINS – SP 2016


FILIPE LANDU NZONGO MICHEL AKIRA MATUYOSHI

DESENVOLVIMENTO DE E-COMMERCE BASEADO EM SISTEMA DE RECOMENDAÇÃO

Trabalho de conclusão de curso apresentado como requisito para aprovação na graduação de Análise e Desenvolvimento de Sistema no Centro Universitário de Lins – Unilins, sob a orientação do Prof. Dr. João Luís Cardoso de Moraes.

LINS – SP 2016


FILIPE LANDU NZONGO MICHEL AKIRA MATUYOSHI

DESENVOLVIMENTO DE E-COMMERCE BASEADO EM SISTEMA DE RECOMENDAÇÃO

Trabalho de conclusão de curso apresentado como requisito para aprovação na graduação de Análise e Desenvolvimento de Sistema do Centro Universitário de Lins – Unilins, sob a orientação do Prof. Dr. João Luís Cardoso de Moraes.

BANCA EXAMINADORA:

Dr. João Luís Cardoso de Moraes – Orientador

Dr. Wagner José Dizeró


DEDICATÓRIA

Dedicamos

este

trabalho

profissionais

de TI,

a

todos

principalmente a

programadores que dedicam suas vidas para desenvolver soluções notáveis que visam facilitar a vida humana. Aos nossos pais que nos apoiaram incondicionalmente ao longo desses anos da nossa formação, somos-lhes muito gratos.

1


AGRADECIMENTO

Agradeço primeiramente a Deus por guiar os meus passos na estrada da vida, iluminando o meu caminho e por me fortificar a cada dia que passa, com sua luz que irradia vida. Meu agradecimento especial aos meus pais Samuel Malanga Nzongo e Ivonne Sengo Landu, que não apenas deram-me vida, mas também a educação necessária para a compreensão do significado de responsabilidade e de virtude para a vida humana. Quero agradecer minhas irmãs e irmãos, Elsa Malonga, Marzia Sungu, Jacqueline Malonga, Ritha Landu, Jonathan Landu Nzongo, Carlos Samuel, Djoé Samuel, por acreditarem em mim e por me apoiarem moralmente e espiritualmente ao longo da minha formação, podem ter sentido a falta da minha presença, mas jamais do meu amor. A todos os professores que ministraram alguma disciplina ao longo do curso, em especial ao meu professor e orientador, Dr. João Luís Cardoso de Moraes, que desempenha exemplarmente seu papel de mediador no processo de ensino e aprendizagem, estando sempre disposto a prestar seu auxílio e contribuir para o desenvolvimento de um estudo de resultados sou-lhe muito grato. Agradeço também à minha namorada, Ednora Augusta, pelo carinho, amor e por estar sempre presente me apoiando e incentivando. A todos os amigos, que demonstraram apoio e compreensão durante o período que, de certa forma, estive ausente do convívio social para me dedicar a este estudo.

Filipe Landu Nzongo

2


Primeiramente agradeço a Deus por ter me dado força e saúde para enfrentar as dificuldades superadas a cada dia e por me guiar espiritualmente para chegar até nessa etapa da minha vida. Agradeço aos meus pais que me incentivaram todos os anos que estive na faculdade. Ao professor e orientador João Luís Cardoso de Moraes, pelo apoio de realizar esse projeto e de nos encorajar, e aos demais Mestres da casa, pelos conhecimentos transmitidos. Agradeço também à minha namorada, Amanda Sant’anna, pelo carinho, amor e por estar sempre presente me apoiando e incentivando, e a todos os amigos, que demonstraram apoio.

Michel Akira Matuyoshi

3


“No mundo das tecnologias, o papel do professor

será

mais

valorizado,

como

formador na ética e na cidadania, o que nenhuma máquina pode fazer” (Andrea Ramal) 4


RESUMO

Recomendar produtos, para um usuário da Internet apresenta-se como um dos maiores desafios no mundo do comércio eletrônico. No entanto a recomendação adequada de um produto procede-se de maneira implícita, explícita ou hibrida de modo a conquistar o usuário. Devido a esta necessidade de conquista, a personalização tem-se apresentado como um fator ideal no momento de "cativar" o usuário. Esse projeto abrange um e-commerce baseado em recomendação de produtos, tendo como fator principal facilitar a interação entre o sistema e o usuário, a fim de ajudá-lo na recomendação de produtos mais acessados, mais vendidos e mais avaliados.

Palavras-Chaves: Internet, Loja Virtual, Sistema de recomendação, Comércio eletrônico.

5


ABSTRACT Recommend products to an Internet user is presented as one of the greatest challenges in the world of electronic commerce. However the appropriate recommendation of a product shall be implicit, explicit or hybrid way, this way can achieve the user. Because of this need for achievement, customization has been presented as an ideal factor in time to "captivate" the user. This system includes an e-commerce based on the recommendation of products, taking as a factor facilitating the interaction between the system to the user, thus helping them with the recommendation of more accessible products, best-selling and most evaluated and ordinary person or user.

Keywords: Internet, Virtual Shop, recommendation system, E-Commerce.

6


RÉSUMÉ

Recommander des produits à un utilisateur d'Internet est présenté comme l'un des plus grands défis dans le monde du commerce électronique. Cependant, la recommandation appropriée d'un produit doit être de manière implicite, explicite ou hybride, de cette manière peut atteindre l'utilisateur. En raison de ce besoin pour la réalisation, la personnalisation a été présentée comme un facteur idéal à temps pour "captiver" l'utilisateur. Ce système comprend un e-commerce basé sur la recommandation de produits, en prenant comme un facteur facilitant l'interaction entre le système de l'utilisateur, ce qui les aide à la recommandation de produits plus accessibles, la meilleure vente et le plus évalué et personne ordinaire ou de l'utilisateur.

Mots-Clés: Internet, Boutique virtuelle, système de recommandation, Commerce electronique.

7


LISTA DE ILUSTRAÇÕES Figura 1 – Coeficiente de correlação linear de Pearson……… ................................ 22 Figura 2 – Matriz de notas........................................................................................ 23 Figura 3 – Matriz de Notas Usuário x Item ............................................................... 23 Figura 4 – Adobe Photoshop Cs6 Interface .............................................................. 28 Figura 5 – Adobe Illustrator Cs6 Interface ................................................................ 29 Figura 6 – Adobe Dreamweaver Cs6 Interface......................................................... 30 Figura 7 – Axure RP Pro .......................................................................................... 31 Figura 8 – MySQL Workbench ................................................................................. 32 Figura 9 – Astah Community .................................................................................... 33 Figura 10 – MySQL Query Browser ......................................................................... 34 Figura 11 – Código Php Carrinho de Compra .......................................................... 36 Figura 12 – Código do Slide Show em JQuery ......................................................... 37 Figura 13 – Código do Slide Show em HTML .......................................................... 39 Figura 14 – Diagrama de Use Case manter Pessoa ................................................ 50 Figura 15 – Diagrama de Use Case manter Telefone .............................................. 52 Figura 16 – Diagrama de Use Case manter Tipo Telefone....................................... 53 Figura 17 – Diagrama de Use Case manter Endereço ............................................. 54 Figura 18 – Diagrama de Use Case manter Categoria ............................................. 55 Figura 19 – Diagrama de Use Case manter Subcategoria ....................................... 56 Figura 20 – Diagrama de Use Case registrar Produto .............................................. 58 Figura 21 – Diagrama de Use Case registrar Imagem ............................................. 59 Figura 22 – Diagrama de Use Case manter Promocao ............................................ 60 Figura 23 – Diagrama de Use Case registrar Fornecimento..................................... 61 Figura 24 – Diagrama de Use Case registrar Pedido ............................................... 63 Figura 25 – Diagrama de Use Case enviar Pagamento PagSeguro ......................... 64 Figura 26 – Diagrama de Use Case Gerenciamento de Recomendação Pessoa não logada ...................................................................................................................... 65 8


Figura 27 – Diagrama de Use Case Gerenciamento de Recomendação Pessoa logada ..................................................................................................................... 66 Figura 28 – Diagrama de Use Case Relatório de Produtos ...................................... 67 Figura 29 – Diagrama de Use Case Relatório de Produtos que atingiram Estoque mínimo .................................................................................................................... 68 Figura 30 – Diagrama de Use Case Relatório de Pessoas ...................................... 69 Figura 31 – Diagrama de Use Case Relatório de Pedido baseado no Status ........... 70 Figura 32 – Diagrama de Use Case Relatório de Pedido por período ...................... 71 Figura 33 – Diagrama de Use Case Emissão de Recibo por Pedido ........................ 72 Figura 34 – Diagrama de Use Case Relatório de Produtos por Fornecedores ......... 73 Figura 35 – Diagrama de Use Case Relatório de Fornecedores por Produto ........... 74 Figura 36 – Diagrama de Use Case Relatório de Promoção de Produtos ................ 74 Figura 37 – Diagrama de Classe .............................................................................. 75 Figura 38 – Modelagem Físico do Banco de Dados ................................................. 76 Figura 39 – Diagrama de Sequencia manter Pessoa ............................................... 77 Figura 40 – Diagrama de Sequencia manter Telefone ............................................. 78 Figura 41 – Diagrama de Sequencia manter Tipo Telefone ..................................... 79 Figura 42 – Diagrama de Sequencia manter Endereço ............................................ 80 Figura 43 – Diagrama de Sequencia manter Categoria............................................ 81 Figura 44 – Diagrama de Sequencia manter Subcategoria ...................................... 82 Figura 45 – Diagrama de Sequencia registrar Produto............................................. 83 Figura 46 – Diagrama de Sequencia atualizar Imagem Produto .............................. 84 Figura 47 – Diagrama de Sequencia manter Promoção ........................................... 85 Figura 48 – Diagrama de Sequencia registrar Fornecimento ................................... 86 Figura 49 – Diagrama de Sequencia registrar Pedido .............................................. 87 Figura 50 – Diagrama de Sequencia enviar Pagamento PagSeguro....................... 88 Figura 51 – Diagrama de Sequencia filtrar Conteudo Recomendado ...................... 89 Figura 52 – Diagrama de Sequencia filtrar Conteudo Recomendado ....................... 90

9


Figura 53 – Diagrama de Sequencia gerar Relatorio Produtos ................................ 91 Figura 54 – Diagrama de Sequencia gerar Relatorio Produto Estoque Minimo ........ 92 Figura 55 – Diagrama de Sequencia gerar Relatorio Pessoa ................................... 93 Figura 56 – Diagrama de Sequencia gerar Relatorio Pedido Por Status ................. 94 Figura 57 – Diagrama de Sequencia gerar Relatorio Pedido Por Periodo ................ 95 Figura 58 – Diagrama de Sequencia gerar Recibo Por Pedido ................................ 96 Figura 59 – Diagrama de Sequencia gerar Relatorio Produtos Por Fornecedores ... 97 Figura 60 – Diagrama de Sequencia gerar Relatorio Fornecedores Por Produto ..... 98 Figura 61 – Diagrama de Sequencia gerar Relatorio Produtos Em Promocao ......... 99 Figura 62 – Protótipo Index Logado ...................................................................... 100 Figura 63 – Protótipo Index Não Logado ............................................................... 101 Figura 64 – Protótipo Cadastrar ............................................................................. 102 Figura 65 – Protótipo Alterar Dados ....................................................................... 103 Figura 66 – Protótipo Carrinho de Compras ........................................................... 103 Figura 67 – Protótipo Meus Pedidos ...................................................................... 104 Figura 68 – Protótipo Detalhes da Compra ............................................................ 105 Figura 69 – Protótipo Index Admin ......................................................................... 106 Figura 70 – Protótipo Pedidos Abertos ................................................................... 106 Figura 71 – Protótipo Detalhes Pedido Admin ....................................................... 107 Figura 72 – Protótipo Gerenciador Fornecedores .................................................. 107 Figura 73 – Protótipo Cadastrar Fornecedor .......................................................... 108 Figura 74 – Protótipo Alterar Dados Fornecedor .................................................... 108 Figura 75 – Protótipo Gerenciador de Produtos ..................................................... 109 Figura 76 – Protótipo Inserir Produto ..................................................................... 109 Figura 77 – Protótipo alterar Produto ..................................................................... 110 Figura 78 – Protótipo inserir Promoção .................................................................. 110 Figura 79 – Protótipo alterar Promoção.................................................................. 111

10


Figura 80 – Protótipo Gerenciador Categoria e Subcategoria ................................ 111 Figura 81 – Protótipo inserir Categoria ................................................................... 112 Figura 82 – Protótipo alterar Categoria .................................................................. 112 Figura 83 – Protótipo Inserir Subcategoria ............................................................. 113 Figura 84 – Protótipo alterar Subcategoria ............................................................ 113 Figura 85 – Protótipo Gerenciador Tipo Telefone ................................................... 114 Figura 86 – Protótipo Inserir Tipo Telefone ............................................................ 114 Figura 87 – Protótipo alterar Tipo Telefone ............................................................ 115 Figura 88 – Protótipo Relatório de Produtos .......................................................... 115 Figura 89 – Protótipo Relatório de Produtos que atingiram estoque mínimo .......... 116 Figura 90 – Protótipo Relatório de Pessoas (usuário, fornecedor) ......................... 116 Figura 91 – Protótipo Relatório de Pedido por Status ............................................ 117 Figura 92 – Protótipo Relatório de Pedido por Período ......................................... 117 Figura 93 – Protótipo Relatório de Produtos por Fornecedores .............................. 118 Figura 94 – Protótipo Relatório de Fornecedores por Produtos .............................. 118 Figura 95 – Protótipo Relatório de Promoção de Produtos .................................... 119 Figura 96 – Protótipo Recibo .................................................................................. 120 Figura 97 – Filtragem Hibrida ................................................................................. 123 Figura 98 – Arquitetura do Sistema de Recomendação ......................................... 124

11


LISTA DE ABREVIATURAS E SIGLAS API Application Programming Interface (Interface de Programação de Aplicativos) CSS Cascading Style Sheets CC Cloud Creative DNS Domain Name System HTML HyperText MarkupLanguage HTTP HyperText Transfer Protocol IP Internet Protocol JS JavaScript URL Uniforme Resource Locator UTF-8 Codificação Unicode de comprimento Variável 8 Bits OS Operating System (Sistema Operativo ou Sistema Operacional) PHP Personal Home Page SGBD Sistema Gerenciador de Banco de Dados SI Sistema de Informação SQL Structured Query Language UML Unified Modeling Language (Linguagem de Modelagem Unificada) W3C World Wide Web Consortium WWW World Wide Web WAMP Windows Apache, MySQL e PHP, Perl ou Python GPL General Public License ISO International Organization for Standardization IEC International Electrotechnical Commission

12


SGML Standard GeneralizedMarkupLanguage HyTimeHypermedia/Time-based Document StructuringLanguage SEO (Search Engine Optimization) BI (Business Intelligence)

13


SUMÁRIO

RESUMO LISTA DE ILUSTRAÇÕES LISTA DE ABREVIATURAS INTRODUÇÃO ......................................................................................................... 17 1.1 Objetivo........................................................................................................... 18 1.2 Justificativa ..................................................................................................... 18 2. SISTEMA DE RECOMENDAÇÃO ....................................................................... 19 2.1 Tipos de sistema de recomendação................................................................ 20 2.1.2 Filtragem por conteúdo ......................................................................... 20 2.1.3 Filtragem colaborativa........................................................................... 21 2.1.4 Filtragem Híbrida .................................................................................. 22 3. ALGORITMO SLOPEONE .................................................................................. 22 4. MODELAGEM DE SISTEMAS UTILIZANDO UML ............................................. 25 4.1 A importância da Modelagem.......................................................................... 26 4.1.2 O processo Unificado............................................................................ 26 5. DESENVOLVIMENTO DO SISTEMA .................................................................. 28 5.1 Principais ferramentas e tecnologias utilizadas ............................................... 28 5.1.1 Adobe Photoshop ................................................................................. 28 5.1.2 Adobe Ilustrator .................................................................................... 29 5.1.3 Adobe Dreamweaver ............................................................................ 30 5.1.4 Axure RP Pro ........................................................................................ 31 5.1.5 MySQL Workbench ............................................................................... 32 5.1.6 Astah Community ................................................................................. 33 5.1.7 MySQL Query Browser ......................................................................... 34 5.1.8 MySQL.................................................................................................. 35 5.1.9 Personal Home Page(PHP) .................................................................. 35 5.1.10 JavaScripts(JS) ................................................................................... 36 5.1.11 JQuery ................................................................................................ 37 5.1.12 Hypertext Markup Language(HTML) ................................................... 38 5.1.13 Cascading Style Sheets (CSS) ........................................................... 39 5.1.14 Twitter Bootstrap ................................................................................. 41

14


5.1.15 Biblioteca FPDF .................................................................................. 42 5.1.16 PagSeguro .......................................................................................... 43 6. ANÁLISE E PROJETOS DE SISTEMA ............................................................... 44 6.1 Lista de Use Case ........................................................................................... 44 6.2 Descrição do Use Case .................................................................................. 48 6.2.1 manterPessoa....................................................................................... 48 6.2.2 manterTelefone ..................................................................................... 51 6.2.3 manterTipoTelefone .............................................................................. 52 6.2.4 manterEndereço ................................................................................... 53 6.2.5 manterCategoria ................................................................................... 54 6.2.6 manterSubcategoria.............................................................................. 55 6.2.7 registrarProduto .................................................................................... 57 6.2.8 registrarImagem.................................................................................... 58 6.2.9 manterPromocao .................................................................................. 60 6.2.10 registrarFornecimento ......................................................................... 61 6.2.11 registrarPedido ................................................................................... 61 6.2.12 enviarPagamentoPagSeguro .............................................................. 63 6.2.13 Gerenciamento de Recomendação Pessoa não logada ..................... 64 6.2.14 Gerenciamento de Recomendação Pessoa Logado ........................... 65 6.2.15 Relatório de Produtos ......................................................................... 67 6.2.16 Relatório de Produtos que atingiram Estoque mínimo ........................ 68 6.2.17 Relatório de Pessoas .......................................................................... 68 6.2.18 Relatório de Pedido baseado no Status .............................................. 69 6.2.19 Relatório de Pedido por período ......................................................... 70 6.2.20 Emissão de Recibo por Pedido ........................................................... 71 6.2.21 Relatório de Produtos por Fornecedores ............................................ 72 6.2.22 Relatório de Fornecedores por Produto .............................................. 73 6.2.23 Relatório de Promoção de Produtos ................................................... 74 6.3 Diagramas de Classes .................................................................................... 75 6.4 Modelagem Físico do Banco de Dados ........................................................... 76 6.5 Diagramas de Seqüência ................................................................................ 77 7. PROTÓTIPO DE TELAS ................................................................................... 100 8. IMPLEMENTAÇÃO ........................................................................................... 121

15


8.1 Soluções Implementadas .............................................................................. 121 8.2 Privacidade ................................................................................................... 121 8.3 Estratégias de Recomendação ..................................................................... 122 8.4 Técnicas de Recomendação ......................................................................... 122 8.5 Filtragem Híbrida .......................................................................................... 122 8.6 Ferramentas ................................................................................................. 123 8.7 Arquitetura de Sistema de Recomendação ................................................... 124 CONCLUSÃO ........................................................................................................ 125 9.1 Considerações Finais.................................................................................... 125 9.2 Contribuições do Projeto ............................................................................... 125 9.3 Trabalhos Futuro ........................................................................................... 126 REFERÊNCIAS BIBLIOGRÁFICAS ...................................................................... 128

16


1. INTRODUÇÃO Com uso constante da internet, tornou-se muito comum o uso de lojas virtuais nos últimos anos, notou-se uma grande evolução no mercado virtual mundial, e as compras efetuadas através de lojas virtuais multiplicaram-se. Recomendar produtos, itens ou informações para um usuário da Internet apresentam-se como um dos maiores desafios no mundo virtual. A recomendação adequada de um determinado produto ou informação pode fazer a diferença para conquistar grande número de usuários. Devido a esta necessidade de conquista, a personalização tem-se apresentado como um fator facilitador no momento de "cativar" o usuário. Os proponentes do primeiro sistema de recomendação denominado Tapestry [Goldberg et al. 1992][Resnick e Varian 1997], criaram a expressão “filtragem colaborativa”, visando designar um tipo de sistema específico no qual a filtragem de informação era realizada com o auxílio humano, ou seja, pela colaboração entre os grupos de interessados. Os autores preferem utilizar a expressão sistemas de recomendação, por ser um termo genérico e defendem este posicionamento por dois motivos: primeiro porque os recomendadores podem sugerir itens de interesse particular, incluindo aqueles que poderiam ser desconsiderados. A questão aqui é como verificar o real interesse em colaborar, pois na realidade as recomendações esboçadas pelos recomendadores estão concentradas em seus interesses próprios. Na verdade, o grupo a ser formado para receber as recomendações deveria pelo menos apresentar indivíduos com interesses comuns (explícitos) ou comportamento comum (implícito). (REATEGUI; CAZELLA.] Neste projeto usaremos o sistema de recomendação híbrido, que consiste em adaptar as duas abordagens filtragem por conteúdo e filtragem colaborativa buscando superar as desvantagens dentro da categoria filtragem colaborativas. Os sistemas de recomendação podem ser divididos em mais duas categorias: ItemBased (Baseado em Item) e User-Based (Baseado em Usuário) (De Souza, 2014). Destaca-se nesse meio o Algoritmo SlopeOne, do tipo Item-Based, uma abordagem simples e eficiente a fim de facilitar aos demais usuários. O sistema de recomendação tem como função de auxiliar o usuário a decidir no momento de aquisição de um produto, mesmo que o indivíduo não tenha bastante experiência do uso da internet. Neste projeto, a recomendação de produto

17


será feita de maneira híbrida, seguindo um processo bem definido para criar recomendações adequadas. 1.1

Objetivo O presente trabalho de conclusão de curso tem como objetivo criar um

sistema de recomendação automatizado, baseado em e-commerce a fim de reduzir a sobrecarga de informação da web atual por meios de técnicas computacionais adequadas, coletando informações de usuários com base nos interesses e conforme o contexto no qual estão inseridos. O sistema de recomendação traz vários benefícios e recursos aumentando as vendas em vários pontos percentuais, e facilita o usuário a encontrar e escolher produtos que correspondem com seus gostos. Deste modo, por este e outros motivos o sistema de recomendação tornou-se um recurso essencial para lojas e serviços.

1.2

Justificativa A abordagem deste trabalho apresenta um sistema e-commerce com foco em

sistema de recomendação, de modo a possibilitar maior comodidade na compra do produto, disponibilidade da loja estar aberta 24 horas por dia, podendo ser acessada a qualquer momento e de qualquer dispositivo com conexão à internet, e facilitando a pessoa receber recomendações de produtos preferidos.

18


2

SISTEMA DE RECOMENDAÇÃO Sistemas de Recomendação podem ser encontrados em sites de pesquisa da

internet, em compras online, na visualização de e-mails, na propaganda personalizada que recebemos na web, com indicações de sites para visitarmos ou produtos para compramos. Com o crescimento do consumo via dispositivos móveis e a propagação do ecommerce, sistemas de recomendação tornaram-se um tema extremamente atrativo. Através de algoritmos simples e facilmente integráveis a aplicações web, eles agregam valor ao negócio online, promovendo itens de consumo direcionados a um público-alvo. Por trás da singela propaganda, estes sistemas utilizam abstrações matemáticas de dados. Neste trabalho, veremos que eles consistem basicamente em algoritmos de filtragem e inferência de dados, que recomendam produtos de acordo com os interesses dos usuários. Os sistemas de recomendação são uma subárea de Aprendizagem por Máquina (Machine Learning) e tem por objetivo sugerir itens a um usuário, com base em seu histórico de preferências (De Souza, 2014). Podem ser recomendados itens diversos como livros, investimentos ou viagens. É amplamente utilizado como uma estratégia de marketing, já que ao recomendar produtos que estejam alinhados ao interesse do usuário, é mais provável que ele venha adquirir tal produto. Os

mecanismos

de

recomendação

dependem

do

domínio

e

das

características particulares dos dados disponíveis. Por exemplo, os amantes de filme da Netflix frequentemente fornecem classificações em uma escala de 1 (não gostei) a 5 (gostei) facilitando deste modo o mecanismo de recomendação para os seus clientes. Os sistemas de recomendação diferem na forma como eles analisam as fontes de dados para desenvolver uma afinidade entre os usuários e os artigos. É possível fazer recomendações comparando as preferências de um usuário com um grupo de outros usuários. Também é possível fazer recomendações procurando itens com características similares aos que o usuário já demonstrou interesse no passado. Segundo De Souza [2014], as preferências do usuário podem ser colhidas implicitamente ou explicitamente. Na forma implícita, informações são obtidas através de opções de compras passadas, histórico de sites visitados, links clicados, cookies do browser, há também a forma explícita de averiguar

19


preferências, utilizando feedbacks efetivos, como por exemplo, notas dadas a um determinado item. 2.1 Tipos de sistemas de recomendação Os sistemas de recomendação dividem-se em três categorias, propostas segundo SHOHAM & BALABANOVIC (1997). E desde então vem sendo complementada por trabalhos subsequentes. São elas as seguintes: 2.1.2 Filtragem por conteúdo Filtragem baseada em conteúdo lista itens com base na comparação entre o conteúdo ou descrição de um conjunto de itens e o perfil de um dado usuário. Segundo MELVILLE & SINDHWANI (2010), a idéia central dessa abordagem, também conhecida como recomendação por conteúdo, baseia-se na premissa de que os usuários gostariam de obter recomendações de itens semelhantes a itens preferidos do usuário no passado. O conteúdo de cada item é representado como um conjunto de descritores ou condições, tipicamente as palavras que ocorrem num documento ou métodos. O perfil do usuário é representado com os mesmos termos e é construído por meio da análise do conteúdo dos itens acessados, buscados ou comprados pelo usuário. Várias questões devem ser consideradas na implementação de um sistema de filtragem baseada em conteúdo. Em primeiro lugar, termos podem ser atribuídos automaticamente

ou

manualmente.

Quando

os

termos

são

atribuídos

automaticamente um método tem de ser escolhido para poder extrair os termos de itens. Em segundo lugar, as condições têm de ser representadas de tal modo que tanto o perfil de usuário quanto os itens pode ser comparado de uma forma significativa. Em terceiro lugar, um algoritmo de aprendizagem deve ser escolhido, de forma que possa ser capaz de aprender o perfil do usuário com base em itens vistos e desta forma fazer recomendações com base nesse perfil criado. Como por exemplo, dado que o gênero de um filme seja uma das características extraídas pelo sistema, e sabendo que um usuário gostou dos Filmes “Matrix” e “De Volta para o Futuro” o sistema poderia inferir uma predileção pelo gênero ficção científica e recomendar o Filme “Interstellar”. (REATEGUI; CAZELLA, 2012)

20


Normalmente os sistemas de recomendação por filtragem de conteúdo baseiam-se basicamente em conteúdo do tipo texto. A abordagem padrão para anålise de termos seleciona palavras simples de documentos. O modelo de espaço vetorial e indexação semântica são dois mÊtodos que usam esses termos para representar

documentos

como

vetores

em

um

espaço

multidimensional.

(REATEGUI; CAZELLAl, 2012) Existem aplicaçþes como o MovieLens “www.movielens.orgâ€? sistema de recomendação de filmes, que conseguem extrair caracterĂ­sticas de itens nĂŁo textuais, no entanto a classificação dos itens ĂŠ feita de forma manual e consequentemente de forma nĂŁo escalĂĄvel. (REATEGUI; CAZELLA, 2012) 2.1.3 Filtragem Colaborativa A Filtragem Colaborativa ĂŠ uma tĂŠcnica utilizada por alguns sistemas de recomendação, consiste em recolher Feedback dos usuĂĄrios, notas, itens, gostos em um determinado domĂ­nio explorando a semelhança no comportamento entre vĂĄrios usuĂĄrios. (REATEGUI; CAZELLA, 2012) Analisa-se a vizinhança do usuĂĄrio a partir da regra: "Se um usuĂĄrio gostou de A e de B,e outro usuĂĄrio que gostou de A e nĂŁo gostou de B, mas que tambĂŠm pode gostar de B". Essa semelhança ĂŠ escolhida atravĂŠs de usuĂĄrio ativo, e uma combinação ponderada das suas classificaçþes ĂŠ usada para produzir previsĂľes para este usuĂĄrio. As maiorias destas abordagens podem ser generalizadas pelo algoritmo nos seguintes passos: 

Atribuição de um peso para todos os usuĂĄrios em relação Ă

similaridade com o usuårio ativo. 

Selecione usuĂĄrios k que tĂŞm a maior similaridade como usuĂĄrio ativo -

comumente chamado de bairro. 

Calcular uma predição a partir de uma combinação ponderada

avaliaçþes dos vizinhos selecionados. Em outras palavras, a idÊia Ê usar a inteligência coletiva de um grupo de pessoas para fazer recomendaçþes para outras. Nessa etapa podemos ver que, o peso ��,� .Ê uma medida da similaridade entre o usuårio u e o usuårio ativa a. A medida comumente utilizada Ê o Coeficiente

21


de correlação linear de Pearson entre as classificações dos dois usuários (Resnick, Iacovou, Sushak, Bergstrom, & Reidl, 1994), definido abaixo: (MELVILLE; SINDHWANI, 2010)

Figura 1 – Coeficiente de correlação linear de Pearson [onde I é o conjunto de itens avaliado por ambos os usuários, ru, i é o classificação dada ao item i pelo usuário u, e ru é a classificação média dada por u usuário]

2.1.4 Filtragem Híbrida Como o termo nos explica a palavra híbrida se refere a algo que resulta da mistura de dois ou mais elementos diferentes, a filtragem híbrida é nada mais que a combinação das duas filtragens precitadas num só a fim de aproveitar os pontos fortes da filtragem por conteúdo e filtragem colaborativa numa abordagem simples para permitir que ambos os métodos possam interagir por fim produzir listas de classificados separados de recomendações, e em seguida, mesclar os seus resultados para produzir uma lista final. De forma geral existem duas formas diferentes, uma é a construção de dois sistemas separados e a combinação de seus resultados como foi propostos em Claypool e Miranda (1999). A outra forma é combinar os dois sistemas em um único com predominância de uma técnica ou outra. (MELVILLE; SINDHWANI, 2010) 3

ALGORITMO SLOPEONE O algoritmo SlopeOne tem como intuito de facilitar a recomendação com

teoria simples e que apresentam bons resultados práticos sendo assim altamente escalável.(De Souza, 2014) O algoritmo opera supondo que um usuário tenha dado notas não binárias a itens. Essas notas são colocadas em uma matriz de UsuáriosXItens, de tal forma que cada linha corresponda às notas de um usuário j a N itens. Se um usuário j não tiver dado notas a um item i, o elemento xi,j fica igual a 0.

22


Figura 02 – Matriz de notas (DE SOUZA, 2014)

Observando a matriz de notas vemos que uma linha j da matriz representa as notas dadas por um usuário j a todos os itens no espaço definido. Uma coluna i representa as notas recebidas pelo item i pelos diferentes usuários existentes. (DE SOUZA, 2014)

Figura 3 – Matriz de Notas Usuário x Item (DE SOUZA, 2014)

A maioria dos métodos de Filtragem Colaborativa também utiliza a matriz de notas para calcular predições. Comumente, são calculadas as similaridades entre as linhas ou colunas usando funções como Pearson ou Cosine Similarity. Dizemos que

23


o mÊtodo Ê User-Based quando são comparadas as linhas da matriz e Item-Based para colunas. Diferentemente de outras abordagens colaborativas, o SlopeOne cria uma relação linear entre os dados. É onde surge o nome: slope Ê o multiplicador de x na fórmula f(x) = ax + b, e o slope para esse algoritmo equivale a 1. Supondo que temos, um usuårio A que deu nota 2 para um item i, e nota 4 a um item j e supondo ainda que temos um usuårio B que deu nota 3 para o item i, atravÊs do SlopeOne, calcularia a predição da nota que o usuårio B daria ao item j da seguinte forma: (Nota de A a item i - Nota de A a item j) = (Nota de B a item i – Predição de B em j) Logo: (2-4) = (3-?) ?=2+3 ?=5 De acordo com a predição do algoritmo, o usuårio B daria uma nota 5 ao item j. Para anålise de mais dados, obteria a mÊdia das diferenças entra as notas dos usuårios. A fórmula geral para cålculo das prediçþes segue descrita abaixo:

đ?‘ƒ đ??´, đ?‘– =

(đ?‘… đ??´, đ?‘– + đ??ˇđ?‘–đ?‘“đ?‘“ đ?‘–, đ?‘— + đ?‘… đ??´, đ?‘˜ + â‹Ż + (đ?‘… đ??´, đ?‘§ + đ??ˇđ?‘–đ?‘“đ?‘“ đ?‘–, đ?‘§ ) đ?‘

Onde Diff (i,j) Ê a mÊdia das diferenças de avaliaçþes entre itens i e j para os outros usuårios, R (A, j)

ĂŠ quanto o usuĂĄrio A deu de nota ao item j, e supondo que

tenhamos N itens e que os itens variem de i a z. (DE SOUZA, 2014)

24


4

MODELAGEM DE SISTEMAS UTILIZANDO UML A UML (Unified Modeling Language – Linguagem de Modelagem Unificada)

é uma linguagem que serve para modelar sistemas orientados a objetos, tem como utilidade a realização de uma padronização no desenvolvimento de software. Sendo assim, ela prove a elaboração e visualização de elementos existentes no desenvolvimento de softwares. A UML é independentemente tanto de linguagem de programação quanto de processos de desenvolvimento, isso quer dizer que a UML pode ser utilizada a modelagem de sistema não importa qual a linguagem de programação será utilizada na implementação ou qual o processo de desenvolvimento adotado. Segundo Booch; Rumbaugh; Jacobson (2000), a UML é uma linguagem muito significativa, compreendendo todas as visões imprescindíveis ao desenvolvimento e implantação de sistemas de informação corporativos distribuídos a aplicações fundamentadas em Web e até mesmo sistemas complexos de tempo real. A UML é somente uma parte de um método para desenvolvimento de software. Para que a realização do desenvolvimento de um projeto de software seja bem-sucedida, a UML estabelece alguns diagramas e padrões de desenvolvimento que tem por objetivo a especificação, a visualização, a construção e a documentação dos artefatos de um sistema de software. Uma linguagem de modelagem tem sua visão voltada para o aspecto conceitual e físico de um sistema. Portando, uma linguagem como a UML, é uma linguagem-padrão para a preparação da composição de projetos de software por meio de diagramas ela possibilita a representação sistemas de software de diferentes pontos de vista. Facilitando assim a comunicação entre todas as pessoas envolvidas no desenvolvimento de um sistema. A UML se destina principalmente à modelagem de sistemas de informação complexos. Atualmente ela está sendo empregada nas mais diversas áreas, como por exemplo: serviços de bancos e finanças, telecomunicações, transportes, vendas, sistemas distribuídos fundamentados na Web, mas ela não se restringe somente ao desenvolvimento de sistemas complexos, ela pode ser utilizada no desenvolvimento de qualquer tipo de sistema. (SILVA, 2009)

25


4.1 A importância da Modelagem Na nossa realidade atual percebe-se uma dependência dos softwares, tanto para uso profissional quanto para questões pessoais. Não seria para menos, já que os softwares tranquilizam os que os utilizam, podendo realizar quase todas as tarefas existentes de forma muito mais veloz se comparado aos humanos. A UML tornou-se a linguagem de modelagem mais utilizada através da sua padronização e de suas constantes atualizações. Na modelagem são destacadas as características ou comportamentos de um sistema computacional que se quer desenvolver. A modelagem pode ser considerada a parte central no desenvolvimento de um bom software, nela concentram-se todas as atividades primordiais para que isto aconteça. Através da modelagem podemos construir modelos e gráficos que explicam características ou comportamentos de um software. Segundo Booch a modelagem não se restringe somente a software de grande porte, os sistemas considerados de médio e pequeno porte também poderão utilizar todos os recursos disponíveis na modelagem de software. Isso não quer dizer que a modelagem seja menos importante em sistemas pequenos, é que quanto maior a complexidade do sistema, maior será a ênfase na modelagem do mesmo. (SILVA, 2009) 4.1.2 O processo Unificado O Processo Unificado adapta-se muito bem a definição universal de processos: são várias atividades executadas em conjunto para converter um conjunto de requisitos trazidos por determinado cliente em um sistema de software (SILVA, 2009). É um processo de engenharia de software desenvolvido por três dos grandes mestres da indústria de software: James Rumbaugh, Ivar Jacobson e Grady Booch, sendo a consequência de mais de trinta anos de conhecimentos adquiridos em estudos realizados. É o processo pioneiro de desenvolvimento, quando tratamos da exploração global das capacidades do paradigma de desenvolvimento de software UML. (SILVA, 2009) Também podemos considerar Processo Unificado, como uma composição geral de processo que pode ser modificada acrescentando-se ou retirando-se

26


atividades com embasamento nas necessidades particulares e nos recursos disponibilizados para um projeto. (SILVA, 2009)

27


5

DESENVOLVIMENTO DO SISTEMA O desenvolvimento do software é uma atividade complexa, o processo de

desenvolvimento de software compreende todas as atividades necessárias para definir, desenvolver, testar e manter um software. Este capítulo faz uma abordagem inicial do sistema desenvolvido, com uma exposição das principais ferramentas e tecnologias que foram necessárias para implementá-lo. 5.1 Principais Ferramentas e Tecnologias Utilizadas 5.1.1 Adobe Photoshop O Adobe Photoshop é um software caracterizado como editor de imagens bidimensionais do tipo raster (possuindo ainda algumas capacidades de edição típicas dos editores vetoriais) desenvolvido pela Adobe Systems. (KNOW, 2013, tradução nossa)

O Adobe Photoshop é uma poderosa ferramenta para trabalhar é muito utilizado no mercado de pré-impressão profissional. Em suas primeiras versões o Photoshop dava suporte apenas à criação e edição de imagens com a finalidade de atender o mercado de impressões gráficas. Sua mais recente versão é apelidada como Adobe Photoshop CC (sigla cujo significado é Creative Cloud, correspondente à sua décima quarta edição desde seu lançamento), disponível para os sistemas operativos Microsoft Windows e Mac OS X. Pode ser rodado também no Linux, através da camada de compatibilidade Wine. (KNOW, 2013, tradução nossa)

Figura 4 – Adobe Photoshop Cs6 Interface

28


5.1.2 Adobe Illustrator O Adobe Illustrator é um editor de imagens vetoriais desenvolvidos e comercializados pelo Adobe Systems. Foi criado inicialmente para a Apple Macintosh em 1985 como complemento comercial de software de fontes da Adobe e da tecnologia PostScript desenvolvida pela empresa.(KNOW, 2013, tradução nossa)O Adobe Illustrator tem como finalidade criar desenhos e imagens vetoriais. Por também apresentar ferramentas que dão suporte para o desenvolvimento Web, muito profissionais as utilizam para criação de interface gráfica para a Internet. (KNOW, 2013, tradução nossa)

Figura 5 – Adobe Ilustrator Css6 Interface

29


5.1.3 Adobe Dreamweaver O Adobe Dreamweaver, antigo Macromedia Dreamweaver é um software de desenvolvimento voltado para a web criada pela Macromedia (adquirida pelo Adobe Systems), e que está atualmente na versão CC. O Adobe Dreamweaver é um poderoso editor, possui várias ferramentas que facilitam o desenvolvimento Web, é um dos softwares mais utilizados pelos profissionais de Web design o Dreamweaver tem como finalidade a codificação Web em HTML, CSS JAVASCRIPT, AJAX, e linguagem de programação como PHP, ASP, ASP.NET, JSP e outras linguagens. (DOS VIENA REIS, 2010, tradução nossa)

Existem versões tanto para Mac OS quanto para Windows, mas também é possível executá-lo em plataformas Unix e sabores através do uso de softwares de emulação como o Wine. Um programa open source semelhante ao Dreamweaver é o Nvu, disponível para Linux,

Mac OS e MS Windows.

SCHWARTZ,2013, tradução nossa)

Figura 6 – Adobe Dreamweaver Cs6 Interface

30

(CAVANAUGH;


5.1.4 Axure RP Pro Axure RP Pro é um software de prototipagem rápida, wireframing,de documentação e especificações a ferramenta é voltado para aplicações web e desktop. Fácil de usar com seu editor arraste e solta, redimensionamento de formas, e formatação de widgets. (KRAHENBUHL, 2014, tradução nossa) Axure RP Pro é desenvolvido pela Axure Solution, osoftware é licenciado comercialmente em duas versões: Axure RP Padrão e Axure RP Pro, as licenças são atribuídas a um indivíduo isoladamente nomeado para uso em dois computadores, podem ser transferidos, e são perpétuos. Axure suporta prototipagem Rich Internet Applications, mapeando os comportamentos desejados de interface (como exibir ou ocultar um elemento) em resposta a ações como cliques do mouse ou gestos de toque. Axure RP gera sites HTML e documentos do Microsoft Word como saída. (KRAHENBUHL, 2014, tradução nossa)

Figura 7 – Axure RP Pro 7.0 Interface

31


5.1.5 MySQL Workbench O MySQL Workbench foi desenvolvido pela empresa sueca MySQL AB Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados, criação e manutenção em um único ambiente de desenvolvimento integrado para o MySQL sistema de banco de dados. (MYSQL WORKBENCH, 2010, tradução nossa) O MySQL Workbench está disponível em duas edições. O Community Edition e Standard Edition. A Community Edition está disponível gratuitamente e é a edição que será utilizada neste trabalho. A Standard Edition é a edição que oferece recursos adicionais, tais como a geração de documentação de banco de dados (MYSQL, 2008).(MYSQL WORKBENCH, 2010, tradução nossa)

Figura 8 – MySQL Workbench Interface

32


5.1.6 Astah Community Astah Community, anteriormente denominado JUDE (Java and UML Developers Environment) Ambiente para Desenvolvedores UML e Java. É um software para modelagem UML. É desenvolvido na plataforma Java, o que garante sua portabilidade para qualquer plataforma que possui uma simples forma de máquina virtual Java. JUDE obteve o prêmio "Software Product Of The Year 2006", pela Information-Technology Promotion Agency (Japão). (CARNEIRO, 2015)

Figura 9 – Astah Community Interface

33


5.1.7 MySQL Query Browser O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado para administrar um servidor MySQL, o MySQL Query Browser foi criado para auxiliar você a selecionar e analisar dados armazenados dentro de um Banco de Dados MySQL. Enquanto todas as solicitações executadas no MySQL Query Browser também podem ser executadas pela linha de comando utilizando-se o utilitário MySQL, o MySQL Query Browser permite a execução e edição dos dados de maneira gráfica, que é mais intuitiva para o usuário. MySQL Query Browser foi projetado para trabalhar com versões 4.0 ou superiores do servidor MySQL. MySQL Query Browser é o resultado do esforço motivado pelo feedback que a MySQL AB tem recebido de muitos usuários em um período de vários anos. Entretanto, caso entenda que um recurso importante para você esteja faltando ou caso descubra um erro de programa, por favor, use o nosso Sistema de Erros MySQL para requisitar melhorias ou reportar problemas. (MYSQL QUERY BROWSER, 2015 tradução nossa)

Figura 10 – MySQL Query Browser Interface

34


5.1.8 MySQL O MySQL é um sistema de gerenciamento de banco de dados relacional (SGBD). O sistema funciona como um servidor robusto de bancos de dados SQL (Structured Query Language) multitarefa e multiusuário [WIKIPEDIA. MYSQL WORKBENCH]. MySQL é uma marca registrada da empresa sueca MySQL AB

subsidiária da Sun Microsystems/Oracle. O MySQL é freqüentemente utilizado em projetos de software livre que requerem um sistema de gestão de dados completo, como o WordPress e outros desenvolvidos nos moldes de software LAMP (Linux, Apache, MySQL e PHP, Perl ou Python). É utilizado em grande escala por uma gama de grandes organizações incluindo, Nokia, Sony, Wikipédia, Google, NASA, Cisco Systems e outras. (RICARDO, 2013) 5.1.9 Personal Home Page (PHP) PHP

(um

acrônimo

recursivo

para

"PHP:

Hypertext

Preprocessor"

Originalmente Personal Home Page) é uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico no World Wide Web. (DE ALMEIDA, 2012) Figura entre as primeiras linguagens passíveis de inserção em documentos HTML, dispensando em muitos casos o uso de arquivos externos para eventuais processamentos de dados. O código é interpretado no lado do servidor pelo módulo PHP, que também gera a página web a ser visualizada no lado do cliente. É possível instalar o PHP na maioria dos sistemas operacionais, gratuitamente. O PHP é utilizado em aplicações como o MediaWiki, Facebook, Drupal, Joomla, WordPress, Magento e os E-commerce. Criado por Rasmus Lerdorf em 1995, o PHP tem a produção de sua implementação principal, referência formal da linguagem, mantida por uma organização chamada The PHP Group. O PHP é software livre, licenciado sob a PHP License, uma licença incompatível com a GNU General Public License (GPL) devido a restrições no uso do termo PHP. (DE ALMEIDA, 2012) A Figura 11 mostra parte do código PHP utilizado na implementação do Carrinho de Compras, onde o sistema espera pela ação que o usuário ira passar

35


para implementá-lo, tendo as opções de “incluir, alterar, deletar”, a baixo segue o “incluir”.

Figura 11 – Código Php Carrinho de Compra

5.1.10 Javascript (JS) O JavaScript é uma linguagem de programação interpretada.

Foi

originalmente implementada como parte dos navegadores web para que scripts pudessem ser executados do lado do cliente e interagissem com o usuário sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido. (SANTOS, 2013) É atualmente a principal linguagem para programação Client-side em navegadores web. Começa também a ser bastante utilizada do lado do servidor através de ambientes como o node.js. Foi concebida para ser uma linguagem script com orientação a objetos baseada em protótipos, tipagem fraca e dinâmica e funções de primeira classe. Possui suporte à programação funcional e apresenta recursos como fechamentos e funções de alta ordem comumente indisponíveis em linguagens populares como Java e C++, o JavaScript é baseada em ECMAScript padronizada pela Ecma International nas especificações ECMA-262 e ISO/IEC 16262. (SANTOS, 2013)

36


5.1.11 JQuery O JQuery é uma biblioteca JavaScript Cross-browser desenvolvida para simplificar os scripts Client-side que interagem com o HTML. Ela foi lançada em dezembro de 2006 no BarCamp de Nova Iorque por John Resig. Usada por cerca de 77% dos 10 mil sites mais visitados do mundo, jQuery é a mais popular das bibliotecas JQuery é uma biblioteca de código aberto e possui licença dual, fazendo uso da Licença MIT ou da GNU General Public License versão 2. (FURLAN, 2012) A sintaxe do jQuery foi desenvolvida para tornar mais simples a navegação do documento HTML, a seleção de elementos DOM, criar animações, manipular eventos e desenvolver aplicações AJAX. A biblioteca também oferece a possibilidade de criação de plug-ins sobre ela. Fazendo uso de tais facilidades, os desenvolvedores podem criar camadas de abstração para interações de mais baixo nível, simplificando o desenvolvimento de aplicações web dinâmicas de grande complexidade. (FURLAN, 2012) A Figura 12 mostra parte do código Jquery utilizado na implementação do “Slide Show” onde o sistema ficara em loop infinito, alterando entre imagens em 2/2 segundos, sem clicar ao botão “next/prev”.

Figura 12 – Código do Slide Show em JQuery

37


5.1.12 Hypertext Markup Language (HTML) É uma linguagem de marcação utilizada na construção de páginas na Web. Documentos HTML podem ser interpretados por navegadores. A tecnologia é fruto da junção entre os padrões HyTime e SGML. (FERREIRA, 2013) HyTime é um padrão para a representação estruturada de hipermídia e conteúdo baseado em tempo. Um documento é visto como um conjunto de eventos concorrentes dependentes de tempo (como áudio, vídeo, etc.), conectados por hiper ligações. O padrão é independente de outros padrões de processamento de texto em geral. SGML é um padrão de formatação de textos. Não foi desenvolvido para hipertexto, mas tornou-se conveniente para transformar documentos em hiperobjetos e para descrever as ligações. A linguagem foi definida em especificações formais na década de 1990, inspiradas nas propostas originais de Tim Berners-Lee em criar uma linguagem baseada em SGML para a Internet. Desde 1996, as especificações HTML vêm sendo mantidas, com o auxílio de fabricantes de software, pela World Wide Web Consortium (W3C). Apesar disso, em 2000 a linguagem tornou-se também uma norma internacional A última especificação HTML lançada pela W3C foi a recomendação HTML 4.01, publicada no final de 1999. Uma errata ainda foi lançada em 2001.(FERREIRA, 2013) Em20 de outubro de 2011 a W3C anunciou o lançamento do HTML5, a mais nova versão do HTML. Apesar de sua sintaxe ser semelhante a de SGML, o HTML5 abandonou qualquer tentativa de ser uma aplicação SGML e, definiu explicitamente sua própria serialização "html".(FERREIRA, 2013). A Figura 13 mostra parte do código HTML utilizado na implementação do “Slide Show” onde o sistema espera uma imagem (formato PNG,JPG), e alguma descrição, logo a baixo temos os botões “next/prev”, para realizar as trocas manuais caso houve a necessidade do usuário.

38


Figura 13 – Código do Slide Show em HTML

5.1.13 Cascading Style Sheets (CSS) É uma linguagem de folhas de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação, como HTML ou XML. O seu principal benefício é a separação entre o formato e o conteúdo de um documento. (CURSO W3C) Em vez de colocar a formatação dentro do documento, o desenvolvedor cria um link (ligação) para uma página que contém os estilos, procedendo de forma idêntica para todas as páginas de um portal. Quando quiser alterar a aparência do portal basta, portanto, modificar apenas um arquivo. Com a variação de atualizações dos navegadores (browsers) como Internet Explorer que ficou sem nova versão de 2001 a 2006, o suporte ao CSS pode variar. O Internet Explorer 6, por exemplo, tem suporte total a CSS1 e praticamente nulo a CSS2. Navegadores mais modernos como Google Chrome e MozillaFirefox tem suporte maior, inclusive até a CSS3. A interpretação dos navegadores pode ser avaliada com o teste Acid2, que se tornou uma forma base de revelar quão eficiente

39


é o suporte de CSS, fazendo com que a nova versão em desenvolvimento do Firefox seja totalmente compatível a ele assim como o Opera já é. O Doctype informado ou a ausência dele determina o quirks mode ou o strict mode modificando o modo como o CSS é interpretado e a página desenhada. CSS tem uma sintaxe simples e utiliza uma série de palavras em inglês para especificar os nomes de diferentes estilos de propriedade de uma página. Uma folha de estilo consiste de uma lista de regras. Cada regra ou conjunto de regras consiste de um ou mais seletores e um bloco de declaração. Uma declaração de bloco é composta por uma lista de declarações entre chaves. É importante notar que nenhum navegador suporta igualmente as definições do CSS. Desta forma, o web designer deve sempre testar suas folhas de estilo em navegadores de vários fabricantes, e preferencialmente em mais de uma versão, para se certificar de que o que foi codificado realmente seja apresentado da forma desejada. (CURSO W3C)

40


5.1.14 Twitter Bootstrap O Bootstrap é o mais popular framework Front-End de código fonte aberto (Open Source) foi projetado para desenvolver sites e aplicativos web, ele contém os modelos de design baseado em HTML, CSS, para tipografia, formulários, botões, navegação entre outros componentes de interface, além das extensões e JavaScript opcionais. O Bootstrap foi projetado para qualquer um, em qualquer lugar, torna o desenvolvimento Front-End web mais rápido e fácil. Ele é feito para pessoas de todos os níveis e dispositivos de qualquer forma ou tamanho. O Bootstrap é compatível com as versões mais recentes dos navegadores como Google Chrome, Firefox, Internet Explorer, Opera e Safari, embora alguns desses navegadores não sejam suportados em todas as plataformas. Ele também suporta o web design responsivo. Isso significa que o layout das páginas da web é ajustado dinamicamente, levando em consideração as características do dispositivo usado (desktop, tablet, telefone celular). Bootstrap é o segundo projeto mais avaliado no GitHub, com mais de 100.000 estrelas e 45.000 comentários. Contudo Bootstrap aumenta sua produtividade de desenvolvimento, tornando fácil a criação e edição de páginas responsivas. (BOOTSTRAP, 2016,

41


5.1.15 FPDF FPDF é uma classe PHP que permite gerar arquivos PDF com PHP puro, ou seja, sem usar a biblioteca PDFlib. F de FPDF significa Free: você pode usá-lo para qualquer tipo de uso e modificá-lo para atender às suas necessidades. A classe FPDF pode produzir documentos em vários idiomas diferentes dos europeus ocidentais: Central Europeu, cirílico, grego, báltico e tailandês, desde que você possui fontes TrueType ou Type1 com o conjunto de caracteres desejado. Suporte UTF-8 também está disponível. Naturalmente, a velocidade de geração do documento é menor do que com PDFlib. No entanto, a penalidade de desempenho mantém-se muito razoável e ternos na maioria dos casos, a menos que seus documentos sejam particularmente complexos ou pesados. FPDF tem outras vantagens: funções de alto nível. Aqui está uma lista de suas principais características: 

Escolha da unidade de medida, formato da página e margens

Gerenciamento de cabeçalho e rodapé de página

Quebra automática de página

Quebra automática de linha e justificação de texto

Suporte de imagem (JPEG, PNG e GIF)

Cores

Links

TrueType, Type1 e suporte de codificação

Compactação de página

FPDF não requer extensão (exceto Zlib para habilitar a compactação e GD para suporte GIF). A versão mais recente requer pelo menos PHP 5.1.

42


5.1.16 PagSeguro O PagSeguro é uma solução de comércio eletrônico para transações comerciais através de pagamentos online ou móveis. Com PagSeguro, pessoas físicas ou jurídicas podem fazer compras e vendas seguras na internet ou receber pagamentos através da máquina de cartões (a Moderninha), do leitor de cartão de débito e crédito para celular e tablete (o leitor MINI). O PagSeguro faz parte do grupo Universo Online (UOL). A plataforma foi desenvolvida com a tecnologia mais avançada em segurança na Internet por uma equipe de especialistas em finanças, tecnologia e segurança da informação, com ampla experiência no desenvolvimento de serviços financeiros online. O PagSeguro também oferece a opção de cobrança via e-mail para utilização de comerciantes que não possuem site ou e-commerce estruturado. O cadastro e utilização do PagSeguro para o vendedor é gratuito. O vendedor paga taxas somente quando faz uma venda através da solução. O PagSeguro tem convênio com diversas instituições bancárias para que o vendedor possa oferecer diferentes tipos de pagamento aos compradores, que recebem o pagamento e repassam ao vendedor após certificar-se de que não houve fraude na operação. O serviço oferece mais de 25 meios de pagamento O PagSeguro vai te ajudar a evitar isso! Toda vez que seu cliente abandonar algo no carrinho e sair do site, ele vai receber um e-mail dizendo que o produto ainda está disponível para compra, mas vender é só parte do desafio. Na hora de entregar, o PagSeguro também te ajuda. Com o Envio Fácil o vendedor consegue um desconto de até 70% em relação ao preço de envio convencional do Sedex. Isso por conta da parceria entre o PagSeguro e os Correios. Foi considerado o “Melhor Meio de Pagamento 2015”, em premiação realizada pelo Congresso Afiliados Brasil. (PAGSEGURO, 2016)

43


6

ANÁLISE E PROJETO DE SISTEMA 6. 1 Lista de Use Case

N 01

Descrição Pessoa informa

Evento dadosPessoa

Use Case manterPessoa

Resposta Msg01

dadosTelefone

manterTelefone

Msg02

dadosTipoTelefone

manterTipoTelefone

Msg03

dadosEndereço

manterEndereço

Msg04

dadosCategoria

manterCategoria

Msg05

dadosSubCategoria

manterSubcategoria

Msg06

dadosProduto

registrarProduto

Msg07

dadosImagem

atualizarImagemPro

Msg08

os dados para ManterPessoa. 02

Pessoa informa os dados para Manter Telefone.

03

Administrador Informa os dados para Manter Tipo Telefone

04

Pessoa informa os dados para Manter Endereço

05

Administrador informa os dados para Manter Categoria

06

Administrador informa os dados para Manter Subcategoria

07

Administrador informa os dados para Registrar Produto.

08

Administrador

44


registra Imagem

duto

ao Produto 09

Administrador

dadosPromocao

manterPromocao

Msg09

dadosFornecimento

registrarFornecimen to

Msg10

dadosPedido

registrarPedido

Msg11

dadosPagamento

enviarPagamentoPa Msg12

registra Promoção de Produtos.

10

Administrador informa dados Fornecimentos de Produtos

11

Pessoa realiza Pedido de Produtos.

12

Pessoa envia dados do

gSeguro

Pagamento para Mercado Pago 13

Sistema busca

produtosRecomendad

filtrarConteudoReco

Produtos mais

os

mendado

Sistema busca

produtosRecomendad

filtrarConteudoReco

Produtos mais

os

mendadoPorPessoa

Msg13

Vendidos, Produtos Mais clicados e Produtos mais Avaliados. 14

Vendidos, Produtos Mais clicados e Produtos mais

45

Msg14


Avaliados por Pessoa. 15

Administrador

dadosRelatorioProduto

solicita relatório

gerarRelatorioProdu

Rel01

tos

de Produto 16

Sistema informa

dadosRelatorioProduto

gerarRelatorioProdu

Rel02

relatório de

EstoqueMinimo

toEstoqueMinimo

dadosRelatorioPessoa

gerarRelatorioPesso Rel03

Produto que atingiram estoque mínimo 17

Administrador solicita relatório

a

de Pessoa (Usuário e Fornecedor) 18

Administrador

dadosRelatorioPedido

gerarRelatorioPedid

solicita relatório

PorStatus

oPorStatus

Administrador

dadosRelatorioPedido

gerarRelatorioPedid

solicita relatório

PorPeriodo

oPorPeriodo

dadosPedido

gerarReciboPorPedi

Rel04

de Pedido baseado no Status 19

Rel05

de Pedido por Período 20

Administrador solicita Emissão

Rel06

do

de Recibo por Pedido 21

Administrador

dadosRelatorioProduto

solicita relatório

46

gerarRelatorioProdu

Rel07


de Produtos por

sFornecidos

tosPorFornecedores

Administrador

dadosRelatorioFornec

gerarRelatorioForne

solicita relatório

edorPorProduto

cedoresPorProduto

Administrador

dadosRelatorioPromoc

gerarRelatorioProdu

solicita relatório

aoProduto

tosEmPromocao

listaPedidosPessoa

listarPedidosPessoa Msg15

Fornecedores 22

Rel08

de Fornecedores por Produto 23

Rel09

de Promoção deprodutos 24

Sistema Lista Pedidos realizados por Pessoa

Fonte: elaborado pelo autor

47


6.2 Descrição do Use Case 6.2.1 manterPessoa Este use case trata de manter novas pessoas no sistema. Curso Normal: 1. Pessoa informa os dadosPessoa, para TelaManterPessoa. 2. Sistema verifica nível de acesso e retorna nível de acesso. 3. Sistema valida dadosPessoa. 4. Sistema instancia o verificar Endereço e verifica em Endereco, e retorna. 5. Se (nivelAcesso = 1), o sistema manterUsuario, para ControlePessoa. 5.1 Sistema valida Usuario. 5.2 Sistema instancia Usuario, para classe Usuario. 5.3 O sistema persiste usuário instanciado na TablePessoa. 5.4 O sistema retorna “Ok” para ControlePessoa e emite msg01 “Pessoa Cadastrada!” para atorPessoa. 6. Se (nivelAcesso = 2), o sistema manterFornecedor, para ControlePessoa. 6.1 Sistema valida Fornecedor. 6.2 Sistema instancia Fornecedor, para classe Fornecedor. 6.3 O sistema persiste fornecedor instanciado na TablePessoa. 6.4 O sistema retorna “Ok” para ControlePessoa e emite msg01 “Pessoa Cadastrada!” para atorPessoa. 7. Se (nivelAcesso = 3), o sistema manterAdministrador, para ControlePessoa. 7.1 Sistema valida Administrador. 7.2 Sistema instancia Administrador, para classe Administrador. 7.3 O sistema persiste usuário instanciado na TablePessoa. 7.4 O sistema retorna “Ok” para ControlePessoa e emite msg01 “Pessoa Cadastrada!” para atorPessoa. 8. Finaliza use case.

48


Cursos Alternativos: Passo 3: dadosPessoa retorna “Falso” 3.1. O sistema emite a msg20 “Dados incorretos” 3.2. O sistema retorna para o passo 1. 3.3. Abandonar o use case. Passo 4.1: Se verificarEndereco retorna “falso”. 4.1.1. Sistema emite msg01 ”Endereço não encontrado”. 4.1.2. Sistema retorna para o passo 01. 4.1.3. Abandonar o use case. Passo 5.1: Se verificarUsuario retorna “falso”. 5.1.1. Sistema emite msg01 ”Pessoa já cadastrada”. 5.1.2. Sistema retorna para o passo 01. 5.1.3. Abandonar o use case. Passo 6.1: Se verificarFornecedor retorna “falso”. 6.1.1. Sistema emite msg01 ”Pessoa já cadastrada”. 6.1.2. Sistema retorna para o passo 01. 6.1.3. Abandonar o use case Passo 7.1: Se verificarAdministrador retorna “falso”. 7.1.1. Sistema emite msg01 ”Pessoa já cadastrada”. 7.1.2. Sistema retorna para o passo 01. 7.1.3. Abandonar o use case

49


Figura 14 – Diagrama de Use Case manterPessoa

50


6.2.2 manterTelefone Este use case trata de Manter novo número de telefone para Pessoa. Curso Normal: 1. Pessoa informa os dadosTelefone, para interfaceManterTelefone. 2. Sistema valida dadosTelefone. 3. Sistema chama método ManterTelefone, e verifica se Telefone existeem Telefone. 3.1. Sistema validaPessoa em Pessoa. 3.2. Sistema validaTipoTel em TipoTelefone. 4. Sistema instancia Telefone da classe Telefone. 5. Sistema persiste Telefone em TableTelefone. 6. Sistema retorna “OK” para ControleTelefone e emite Msg02 “Telefone cadastrado!” para atorPessoa. Cursos Alternativos: Passo 2: dadosTelefone retorna “Falso” 2.1. O sistema emite msg02 “Dados invalidos” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case. Passo 3.0.1: Se verificarTelefone retorna “Falso” 3.0.2. O sistema emite msg02 “Telefone já Cadastrado” 3.0.3. O sistema retorna para o passo 1. 3.0.4. Abandonar o use case. Passo 3.1.1: Se validaPessoa retorna “Falso” 3.1.2. O sistema emite msg02 “Pessoa não encontrada” 3.1.3. O sistema retorna para o passo 1. 3.1.4. Abandonar o use case.

51


Passo 3.2.1: Se validaTipoTel retorna “Falso” 3.2.2. O sistema emite msg02 “TipoTelefone não encontrado” 3.2.3. O sistema retorna para o passo 1. 3.2.4. Abandonar o use case.

Figura 15 – Diagrama de Use Case manterTelefone

6.2.3 manterTipoTelefone Este use case é responsável por Manter tipo de telefone para Telefone. Curso Normal: 1. Administrador informa os dadosTipoTelefone, para interfaceManterTipoTelefone. 2. Sistema valida dadosTipoTelefone. 3. Sistema chama métodoo ManterTipoTelefone, e verifica se tipo de telefone existe em TipoTelefone. 4. Sistema instancia TipoTelefone da classe TipoTelefone. 5. Sistema persiste TipoTelefone em TableTipoTelefone. 6. Sistema retorna “OK” para ControleTipoTelefone e emite Msg03 “TipoTelefone cadastrado!” para atorAdminstrador. Cursos Alternativos: Passo 2: dadosTipoTelefone retorna “Falso”

52


2.1. O sistema emite msg03 “Dados inválidos” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case. Passo 3.0.1: Se verificarTipoTelefone retorna “Falso” 3.0.2. O sistema emite msg03 “TipoTelefone já Cadastrado” 3.0.3. O sistema retorna para o passo 1. 3.0.4. Abandonar o use case.

Figura 16 – Diagrama de Use Case manterTipoTelefone

6.2.4 manterEndereço Este use case trata de Manter um novo Endereço para Pessoa. Curso Normal: 1. Pessoa informa os dadosEndereço, para interfaceManterEndereco. 2. Sistema valida dadosEndereco. 3. Sistema chama método o verificar Pessoa e verifica em Pessoa. 4. Sistema chama método ManterEndereco, e verifica em Endereco. 5. Sistema instancia Endereco da classe Endereco. 6. Sistema persiste Endereco em TableEndereco. 7. Sistema retorna “OK” para ControleEndereco e emite Msg04 “Endereço cadastrado!” para atorPessoa. Cursos Alternativos: Passo 2: dadosEndereco retorna “Falso”

53


2.1. O sistema emite msg04 “Dados inválidos” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case. Passo 3.0.1: Se verificarPessoa retorna “Falso” 3.0.2. O sistema emite msg04 “Pessoa não encontrada” 3.0.3. O sistema retorna para o passo 1. 3.0.4. Abandonar o use case. Passo 4.1.1: Se verificarEndereco retorna “Falso” 3.1.2. O sistema emite msg04 “Endereço já cadastrado” 3.1.3. O sistema retorna para o passo 1. 3.1.4. Abandonar o use case.

Figura 17 – Diagrama de Use Case manterEndereço

6.2.5 manterCategoria Este use case é responsável pelo cadastro da categoria no sistema. Curso Normal: 1. Administrador informa os dadoCategoria, para interfaceManterCategoria. 2. Chama método ManterCategoria, e verifica em Categoria. 3. Sistema valida dadosCategoria. 4. Sistema instancia Categoria da classe Categoria. 5. Sistema persiste Categoria em TableCategoria. 54


6. Sistema retorna “OK” para ControleCategoroia e emite Msg05 “Categoria cadastrado!” para atorAdministrador. Cursos Alternativos: Passo 2: dadosCategoria retorna “Falso” 2.1. O sistema emite msg05 “Dados inválidos” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case. Passo 3.0.1: Se verificarCategoria retorna “Falso” 3.0.2. O sistema emite msg05“Categoria já Cadastrado” 3.0.3. O sistema retorna para o passo 1. 3.0.4. Abandonar o use case.

Figura 18 – Diagrama de Use Case manterCategoria

6.2.6 manterSubcategoria Este use case é responsável pelo cadastro da subcategoria dos produtos. Curso Normal: 1. Administrador

informa

os

dadoSubCategoria,

interfaceManterSubCategoria. 2. Chama método ManterSubCategoria, e verifica em SubCategoria. 3. Sistema valida dadosSubCategoria. 4. Sistema chama método verificar Categoria e verifica em Categoria.

55

para


5. Sistema instancia SubCategoria da classe SubCategoria. 6. Sistema persiste SubCategoria em TableSubCategoria. 7. Sistema

retorna

“OK”

para

ControleSubCategoroia

e

“SubCategoria cadastrado!” para atorAdministrador. Cursos Alternativos: Passo 2: dadosSubCategoria retorna “Falso” 2.1. O sistema emite msg06 “Dados inválidos” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case. Passo 3.0.1: Se verificarCategoria retorna “Falso” 3.0.2. O sistema emite msg06 “Categoria não encontrada” 3.0.3. O sistema retorna para o passo 1. 3.0.4. Abandonar o use case. Passo 4.1.1: Se verificarSubCategoria retorna “Falso” 4.1.2. O sistema emite msg06 “SubCategoria já cadastrado” 4.1.3. O sistema retorna para o passo 1. 4.1.4. Abandonar o use case.

Figura 19 – Diagrama de Use Case manterSubcategoria

56

emite

Msg06


6.2.7 registrarProduto Este use case é responsável por registrar Produto. Curso Normal: 1. Administrador informa os dadosProdutos, para interfaceRegistrarProduto. 2. Sistema valida dadosProduto. 3. Sistema chama métodoo RegistrarProduto, e verifica em Produto. 3.1. Sistema validaSubCategoria em SubCategoria. 3.2. Sistema validaPromocao em Promocao. 4. Sistema chama métodoManterProduto da classe Produto. 5. Sistema persiste Produto em TableProduto. 6. Sistema retorna “OK” para ControleManterProduto e emite Msg07 “Produto cadastrado!” para atorAdministrador. Cursos Alternativos: Passo 2.1: Dados de produtos incorretos. 2.1.1 O sistema emite msg07 “Dados de produtos incorretos!” 2.1.2. O sistema solicita um novo cadastro do produto, retornando ao passo 1. 2.1.3. Abandonar o use case. Passo 3.0.1: O produto está cadastrado. 3.0.2 O sistema emite msg07 “Produto já cadastrado!” 3.0.3. O sistema solicita um novo cadastro do produto, retornando ao passo 1. 3.0.4. Abandonar o use case. Passo 3.1.1: Sub Categoria não existe. 3.1.2 O sistema emite msg07 “Sub Categoria não existente!” 3.1.3. O sistema solicita um novo cadastro do produto, retornando ao passo 1. 3.1.4. Abandonar o use case.

57


Figura 20 – Diagrama de Use Case registrarProduto

6.2.8 registrarImagem Este use case é responsável para adicionar novas imagens a Produto. Curso Normal: 1. Administrador informa os dadosImagem, para interfaceRegistrarProduto. 2. Sistema valida dadosImagem. 3. Sistema chama o metodo registrarImagemProduto, e verifica em Produto. 3.1. Sistema validaImagem em Imagem. 4. Sistema chama o metodo manterImagem da classe Imagem. 5. Sistema persiste Imagem em TableImagem. 6. Sistema acrescenta imagem em produto, e atualiza. 7. Sistema retorna “OK” para ControleManterProduto e emite Msg08 “Imagem cadastrada!” para atorAdministrador. Cursos Alternativos: Passo 2.1: Dados de imagem incorretos. 2.1.1 O sistema emite msg08 “Dados de imagens incorretos!” 2.1.2. O sistema solicita um novo cadastro de imagem, retornando ao passo 1 2.1.3. Abandonar o use case. Passo 3.0.1: Produto não existe. 3.0.1 O sistema emite msg08 “Produto não cadastrado”

58


3.0.2. O sistema solicita um novo cadastro de imagem, retornando ao passo1. 3.0.3. Abandonar o use case. Passo 3.1.1: Imagem já existe. 3.1.2 O sistema emite msg08 “Imagem já cadastrada” 3.1.3. O sistema solicita um novo cadastro de imagem, retornando ao passo1. 3.1.4. Abandonar o use case.

Figura 21 – Diagrama de Use Case registrarImagem

59


6.2.9 manterPromocao Este use case é responsável por manter uma promoção de produtos. Curso Normal: 1. Administrador informa os dadosPromocao, para interfaceManterPromocao. 2. Sistema valida dadosPromocao. 3. Sistema chama método RegistrarPromocao, e verifica em Produto. 4. Sistema chama métodoManterPromocao da classe Promocao. 5. Sistema persiste Promocao em TablePromocao. 6. Sistema atualiza o atributo preço na classe Produto. 7. Sistema atualiza promoção na classe Produto. 8. Sistema retorna “OK” para ControleManterPromocao e emite Msg09 “Promoção cadastrada!” para atorAdministrador. Cursos Alternativos: Passo 2.1: Dados de promoção incorretos. 2.1.1 O sistema emite msg09 “Dados de promoção incorretos!” 2.1.2. O sistema solicita um novo cadastro do produto, retornando ao passo 1. 2.1.3. Abandonar o use case. Passo 3.1: Promoção já cadastrada em produto. 3.1.1 O sistema emite msg09 “Promoção já cadastrada” 3.1.2. O sistema solicita um novo cadastro de Promoção, retornando ao passo 1. 3.1.3. Abandonar o use case.

Figura 22 – Diagrama de Use Case manterPromocao

60


6.2.10 registrarFornecimento Este use case é responsável pelo controle de fornecimento entre fornecedor e produtos Curso Normal: 1. Administrador informa dadoFornecimento, para ControleFornecimento. 2. Sistema valida Fornecedor. 2.1 Sistema valida Produto. 3. Sistema chama o método fornecimento da classe Fornecimento. 4. Sistema persiste Fornecimento em TableFornecimento. 5. Sistema retorna “OK” para ControleFornecimento.

Figura 23 – Diagrama de Use Case registrarFornecimento

6.2.11 registrarPedido Este use case é responsável registrar e realizar um novo pedido. Curso Normal: 1. Pessoa informa os dadosPedido, para interfaceRegistrarPedido. 2. Sistema chama método registrarPedido, valida em Pessoa. 3. Sistema instancia Pedido da classe Pedido. 4. Sistema persiste manterPedido em TablePedido. 5. Para cada Item Pedido o atorPessoa informa os dadosCarrinho, para interfaceRegistrarPedido. 6. Sistema chama métodoregistrarItensPedido, valida em Produto e retorna.

61


7. Sistema instancia CarrinhoCompra da classe CarrinhoCompra. 8. Sistema

persiste

manterItensPedido(carrinhoCompra)

em

TableCarrinhoCompra. 9. Sistema atualizaValorParcial em CarrinhoCompra. 9.1.

Sistema atualizaValorTotal em Pedido.

10. Pessoa solicita finalizarPedido, para interFaceRegistrarPedido. 11. Sistema chama método finalizarPedido, restaurando o valorTotal(valor) de Pedido. 11.1. Sistema restaura o StatusPedido e atualiza passando “pendente”. 11.2. Sistema restaura a QtdEstoque(qtd), verificando em Produto. 12. Sistema atualiza Pedido da classe Pedido. 13. Sistema atualiza Pedido pelo método manterPedido(pedido) em TablePedido. 14. Sistema atualizaQtdEstoque em Produto. 15. Sistema retorna Msg10 “Pedido Finalizado!” para o atorPessoa. 16. Se (avaliação ! = “”),

Pessoa informa o dados da avalição, para

interfaceRegistrarPedido. 16.1. Sistema chama o método informarNota, ao Controle. 16.2. Sistema atualiza Nota(avaliação) na classe Pedido. 16.3. Sistema atualiza Pedido em manterPedido(pedido) na TablePedido.

Cursos Alternativos: Passo 2.1: ValidarPessoa retorna “falso”. 2.1.1 O sistema emite msg10 “Pessoa não localizada!” 2.1.2. O sistema solicita um novo registro de Pedido, retornando ao passo 1. 2.1.3. Abandonar o use case. Passo 6.1: ValidarProduto retorna “falso”. 6.1.1. O sistema emite msg10 “Produto não localizado!” 6.1.2. O sistema solicita um novo registro de Pedido, retornando ao passo 1. 6.1.3. Abandonar o use case. Passo 16.1: Se (avaliação = “”) retorna “falso”.

62


2.1.1. O sistema emite msg10 “Obrigado pela compra!” 2.1.2. Abandonar o use case.

Figura 24 – Diagrama de Use Case registrar Pedido

6.2.12 enviarPagamentoPagSeguro Este use case é responsável enviar um pagamento de pedido para o PagSeguro. Curso Normal: 1. Pessoa informa os dadosPagamento, para interfaceRealizarPagamento. 2. Sistema chama método registrarPagamento, valida em Pedido. 2.1.

Sistema valida em StatusPedido.

3. Sistema atualiza o StatusPedido na classe StatusPedido. 4. Sistema instancia Pagamento na classe PagSeguro. 5. Sistema persiste Pagamento em TablePagSeguro. 6. Sistema retorna “OK” para ControleRealizarPagamento e emite Msg12 “Pagamento Realizado!” para atorPessoa. Cursos Alternativos: Passo 2.0.1: ValidarPedido retorna “falso”. 2.0.2 O sistema emite msg12 “Pedido não encontrado!” 2.0.3. O sistema solicita um novo registro de pagamento, retornando ao passo 2.0.4. Abandonar o use case.

63


Passo 2.1.1: ValidarStatusPedido retorna “falso”. 2.1.1 O sistema emite msg12 “Status não encontrado!” 2.1.2. O sistema solicita um novo registro de pagamento, retornando ao passo 1. 2.1.3. Abandonar o use case.

Figura 25 – Diagrama de Use Case enviarPagamentoPagSeguro

6.2.13 Gerenciamento de Recomendação Pessoa não logada. Este use case é responsável pelo gerenciamento de recomendações. Curso Normal: 1. Sistema busca Produtos mais vendidos 1.1 ControleRecomendacao busca os produtos mais vendidos 1.2 A interfaceRecomendacao retorna a Lista de Produtos mais vendidos 1.3 Página Principalé atualizada com a Lista de Produtos mais vendidos. 2. Sistema busca produtos mais clicados 2.1 ControleRecomendacao busca os produtos mais clicados. 2.2 A interfaceRecomendação retorna a Lista de Produtos mais clicados. 2.3 Página Principalé atualizada com a Lista de Produtos mais clicados. 3. Sistema busca produtos mais avaliados. 3.1 ControleRecomendacao busca os produtos mais avaliados. 3.2 A interfaceRecomendacao retorna a Lista de Produtos mais avaliados. 3.3 Página Principal é atualizada com a Lista de Produtos mais avaliados.

64


Figura 26 – Diagrama de Use Case Gerenciamento de Recomendação Pessoa não logada

6.2.14 Gerenciamento de Recomendação Pessoa Logado. Este use case é responsável pelo gerenciamento de recomendações para pessoa logada. Curso Normal: 1. Sistema busca Produtos mais vendidos, referente à Pessoa. 1.1 ControleRecomendacao busca os produtos mais vendidos. 1.2 A interfaceRecomendação retorna a Lista de Produtos mais vendidos 1.3 Página Principal é atualizada com a Lista de Produtos mais vendidos. 2. Sistema busca produtos mais clicados referente a Pessoa. 2.1 ControleRecomendacao busca os produtos mais clicados. 2.2 A interfaceRecomendacao retorna a Lista de Produtos mais clicados. 2.3 Página Principal é atualizada com a Lista de Produtos mais clicados referente a Pessoa. 3. Sistema busca produtos mais avaliados. 3.1 ControleRecomendacao busca os produtos mais avaliados. 3.2 A interfaceRecomendacao retorna a Lista de Produtos mais avaliados. 3.3 PaginaPrincipal é atualizada com a Lista de Produtos mais avaliados.

65


Figura 27 – Diagrama de Use Case Gerenciamento de Recomendação Pessoa logada

66


6.2.15 Relatório de Produtos Este use case é responsável por emitir Relatório de Produtos. Curso Normal: 1. Administrador

informa

os

dadosRelatorioProduto,

para

interfaceRelatorioProdutos 2. Sistema chama método o gerarRelatorioProdutos, e valida em Produto. 3. Sistema retorna “OK” para ControleRelatorioProdutos e emite Rel01 “Relatorio de Produtos!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaProduto retorna “Falso” 2.1. O sistema emite Rel01 “Produto Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

Figura 28 – Diagrama de Use Case Relatório de Produtos

67


6.2.16 Relatório de Produtos que atingiram Estoque mínimo Este use case é responsável por emitir Relatório de Produtos que atingiram Estoque mínimo. Curso Normal: 1. Administrador

informa

os

dadosRelatorioProdutoEstoqueMinimo,

para

interfaceRelatorioProdutoEstoqueMinimo 2. Sistema chama método o gerarRelatorioProdutoEstoqueMinimo, e valida em Produto(QtdMinima), e retorna. 3. Sistema retorna “OK” para ControleRelatorioProdutos e emite Rel02 “Relatorio

de

Produtos

que

atingiram

Estoque

mínimo!”

para

atorAdminstrador. Cursos Alternativos: Passo 2: validaProduto(QtdMinima) retorna “Falso” 2.1. O sistema emite Rel02 “Produto Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

Figura 29 – Diagrama de Use Case Relatório de Produtos que atingiram Estoque mínimo

6.2.17 Relatório de Pessoas Este use case é responsável por emitir Relatório Pessoas

68


Curso Normal: 1. Administrador

informa

os

dadosRelatorioPessoa,

para

interfaceRelatorioPessoa 2. Sistema chama método o gerarRelatorioProdutos, e valida em Pessoa, e retorna. 3. Sistema retorna “OK” para ControleRelatorioPessoa e emite Rel03 “Relatorio de Pessoa!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaPessoa retorna “Falso” 2.1. O sistema emite Rel03 “Pessoa Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

Figura 30 – Diagrama de Use Case Relatório de Pessoas

6.2.18 Relatório de Pedido baseado no Status Este use case é responsável por emitir Relatório Pedido baseado no Status Curso Normal: 1. Administrador

informa

os

dadosRelatorioPedidoPorStatus,

para

interfaceRelatorioPedidoPorStatus 2. Sistema chama método o gerarRelatorioPedidoPorStatus, e valida em Pedido(StatusPedido), e retorna. 3. Sistema retorna “OK” para ControleRelatorioPedidoPorStatus emite Rel04 “Relatorio de Pedido por Status!” para atorAdminstrador. 69


Cursos Alternativos: Passo 2: validaPedido(StatusPedido) retorna “Falso” 2.1. O sistema emite Rel04 “Status Pedido Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

Figura 31 – Diagrama de Use Case Relatório de Pedido baseado no Status

6.2.19 Relatório de Pedido por período Este use case é responsável por emitir Relatório Pedido pro periodo. Curso Normal: 1. Administrador

informa

os

dadosRelatorioPedidoPorPeriodo,

para

interfaceRelatorioPedidoPorPeriodo 2. Sistema chama métodoo

gerarRelatorioPedidoPorPeriodo, e valida em

Pedido(data). 3. Sistema retorna “OK” para ControleRelatorioPedidoPorPeriodo emite Rel05 “Relatorio de Pedido por Periodo!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaPedido(data) retorna “Falso” 2.1. O sistema emite Rel05 “Pedido Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

70


Figura 32 – Diagrama de Use Case Relatório de Pedido por período

6.2.20 Emissão de Recibo por Pedido Este use case é responsável por emitir Emissão de Recibo por Pedido. Curso Normal: 1. Administrador informa os dadosPedido, para interfaceReciboPedido 2. Sistema chama método o gerarReciboPorPedido, e valida em Pedido. 3. Sistema retorna “OK” para ControleReciboPedido emite Rel06 “Emissão de Recibo por Pedido!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaPedido retorna “Falso” 2.1. O sistema emite Rel06 “Pedido Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

71


Figura 33 – Diagrama de Use Case Emissão de Recibo por Pedido

6.2.21 Relatório de Produtos por Fornecedores Este use case é responsável por emitir Relatório de Produtos por Fornecedores. Curso Normal: 1. Administrador informa os dadosRelatorioProdutosFornecidos, para interfaceRelatorioProdutoPorFornecedores. 2. Sistema chama método o gerarRelatorioProdutosPorFornecedores, e valida em Fornecimento. 3. Sistema retorna “OK” para ControleProdutorPorFornecedores emite Rel07 “Relatório de Produto por Fornecedores!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaFornecimento retorna “Falso” 2.1. O sistema emite Rel07 “Fornecimento Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

72


Figura 34 – Diagrama de Use Case Relatório de Produtos por Fornecedores

6.2.22 Relatório de Fornecedores por Produto Este use case é responsável por emitir Relatório de Fornecedores por Produto. Curso Normal: 1. Administrador

informa

os

dadosRelatorioFornecedorPorProduto,

para

interface RelatorioFornecedorPorProduto. 2. Sistema chama método o gerarRelatorioFornecedoresPorProduto, e valida em Fornecimento. 3. Sistema retorna “OK” para ControleRelatorioFornecedorPorProduto emite Rel08 “Relatório de Fornecedor por Produto!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaFornecimento retorna “Falso” 2.1. O sistema emite Rel08 “Fornecimento Invalido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

73


Figura 35 – Diagrama de Use Case Relatório de Fornecedores por Produto

6.2.23 Relatório de Promoção de Produtos Este use case é responsável por emitir Relatório de Promoção de Produtos. Curso Normal: 1. enviarAdministrador

informa

os

dadosRelatorioPromocaoProduto,

para

interfaceRelatorioPromocãoProduto. 2. Sistema chama método o gerarRelatorioProdutosEmPromocao, e valida em Promoção. 3. Sistema retorna “OK” para ControleRelatorioPromocaoProdutos emite Rel09 “Relatório de Promoção de Produtos!” para atorAdminstrador. Cursos Alternativos: Passo 2: validaPromoção retorna “Falso” 2.1. O sistema emite Rel09 “Promoção Inválido” 2.2. O sistema retorna para o passo 1. 2.3. Abandonar o use case.

Figura 36 – Diagrama de Use Case Relatório de Promoção de Produtos

74


6.3 Diagrama de Classe

Figura 37 – Diagrama de Classe

75


6.4 Modelagem Físico do Banco de Dados

Figura 38 – Modelagem Físico do Banco de Dados

76


6.5 Diagramas de Sequência

Figura 39 – Diagrama de Sequência manterPessoa

77


Figura 40 – Diagrama de Sequencia manterTelefone

78


Figura 41 – Diagrama de Sequência manterTipoTelefone

79


Figura 42 – Diagrama de Sequencia manterEndereço

80


Figura 43 – Diagrama de Sequência manterCategoria

81


Figura 44 – Diagrama de Sequência manterSubcategoria

82


Figura 45 – Diagrama de Sequencia registrarProduto

83


Figura 46 – Diagrama de Sequência atualizarImagemProduto

84


Figura 47 – Diagrama de Sequência manterPromoção

85


Figura 48 – Diagrama de SequênciaregistrarFornecimento

86


Figura 49 – Diagrama de SequênciaregistrarPedido

87


Figura 50 – Diagrama de Sequência enviarPagamentoPagSeguro

88


Figura 51 – Diagrama de Sequência filtrarConteudoRecomendado

89


Figura 52 – Diagrama de Sequência filtrarConteudoRecomendado

90


Figura 53 – Diagrama de Sequência gerarRelatorioProdutos

91


Figura 54 – Diagrama de Sequência gerarRelatorioProdutoEstoqueMinimo

92


Figura 55 – Diagrama de Sequência gerarRelatorioPessoa

93


Figura 56 – Diagrama de Sequência gerarRelatorioPedidoPorStatus

94


Figura 57 – Diagrama de Sequência gerarRelatorioPedidoPorPeriodo

95


Figura 58 – Diagrama de Sequência gerarNotaFiscalPorPedido

96


Figura 59 – Diagrama de Sequencia gerarRelatorio ProdutosPorFornecedores

97


Figura 60 – Diagrama de Sequencia gerarRelatorioFornecedoresPorProduto

98


Figura 61 – Diagrama de Sequencia gerarRelatorioProdutosEmPromocao

99


7. PROTOTIPO DE TELAS

Figura 62 – Protótipo Index Logado

100


Figura 63 – Protótipo Index Não Logado

101


Figura 64 – Protótipo Cadastrar

102


Figura 65 – Protótipo Alterar Dados

Figura 66 – Protótipo Carrinho de Compras

103


Figura 67 – Protótipo Meus Pedidos

104


Figura 68 – Protótipo Detalhes da Compra

105


Figura 69 – Protótipo IndexAdmin

Figura 70 – Protótipo PedidosAbertos

106


Figura 71 – Protótipo DetalhesPedidoAdmin

Figura 72– Protótipo GerenciadorFornecedores

107


Figura 73 – Protótipo CadastrarFornecedor

Figura 74 – Protótipo AlterarDadosFornecedor

108


Figura 75 – Protótipo Gerenciador de Produtos

Figura 76 – Protótipo InserirProduto

109


Figura 77 – Protótipo alterarProduto

Figura 78 – Protótipo inserir Promoção

110


Figura 79 – Protótipo alterar Promoção

Figura 80 – Protótipo Gerenciador Categoria e Subcategoria

111


Figura 81 – Protótipo inserir Categoria

Figura 82 – Protótipo alterar Categoria

112


Figura 83 – Protótipo Inserir Subcategoria

Figura 84 – Protótipo alterar Subcategoria

113


Figura 85 – Protótipo Gerenciador Tipo Telefone

Figura 86 – Protótipo Inserir Tipo Telefone

114


Figura 87 – Protótipo alterar Tipo Telefone

Figura 88 – Protótipo Relatório de Produtos

115


Figura 89 – Protótipo Relatório de Produtos que atingiram estoque mínimo

Figura 90 – Protótipo Relatório de Pessoas (usuário, fornecedor)

116


Figura 91 – Protótipo Relatório de Pedido por Status

Figura 92 – Protótipo Relatório de Pedido por Período

117


Figura 93 – Protótipo Relatório de Produtos por Fornecedores

Figura 94 – Protótipo Relatório de Fornecedores por Produtos

118


Figura 95 – Protótipo Relatório de Promoção de Produtos

119


Figura 96 – Protótipo Recibo de PedidoFinalizado

120


8. IMPLEMENTAÇÃO Hoje é bastante comum no mundo dos negócios a coleta de informações do usuário. Ao abrir uma conta bancária, adquirir um bem imobilizado ou até para fazer uma compra pela internet, por exemplo, é exigido que o cliente forneça dados pessoais como nome, endereço, telefone, etc. Até números de documentos. E isso se torna importante para se ter conhecimento sobre quem é este usuário. [SISTEMA DE RECOMENDAÇÃO, EDJALMA QUEIRÓZ E CELSON CAMILO]

Diante deste fato é tanto necessário identificar o usuário no momento em que ele acessa o sistema onde foram implementadas as técnicas de recomendação, ao longo do desenvolvimento deste trabalho foi implementado uma técnica de recolha de dados, que é a Identificação no servidor, o nosso sistema disponibiliza-se de uma área que permite aos usuários realizar seu cadastro no sistema introduzindo suas informações pessoais tais como: nome, data de nascimento, endereço, CPF entre outros. Além disso, é obrigatório que qualquer pessoa que queira realizar compra no sistema tenha um cadastro (Login). Este mecanismo permite que o web site identifique com mais precisão cada usuário que nele se conecta. [SISTEMA DE RECOMENDAÇÃO, EDJALMA QUEIRÓZ E CELSON CAMILO]

8.1 Soluções Implementadas

Esta seção apresenta algumas etapas necessárias para a construção e implementação do nosso E-commerce neste artigo, bem como as ferramentas e métodos utilizados para o seu desenvolvimento.

8.2 Privacidade

Pesquisas mostram que a maior parte dos usuários está disposta a fornecer informações suas para que possam receber ofertas personalizadas. No entanto, o censo americano mostra que 75% dos usuários daquele país se preocupam com a possível divulgação de dados que fornecem às empresas. Atualmente os usuários buscam sempre conhecer os objetivos da coleta de dados e se estes dados serão fornecidos a terceiros. O nosso sistema fornece aos usuários maior privacidade para

121


que os seus dados não caiam nas mãos de pessoas mal-intencionadas, no entanto usamos técnicas de segurança computacional como MD5 (Message-Digest algorithm cinco) um algoritmo que nos permite criptografar as senhas e os dados dos nossos usuários, até 128 bits unidirecionais. [EDJALMA QUEIRÓZ E CELSON CAMILO]

8.3 Estratégias de Recomendação

No momento do desenvolvimento de sistema de recomendação o grande objetivo é sempre a fidelização do cliente, para uma determinada empresa, trazendo para estes benefícios como a lucratividade. [EDJALMA QUEIRÓZ E CELSON CAMILO]

Por isso é muito comum hoje ver empresas investindo no sistema de recomendação, no entanto ao desenvolver o nosso sistema implementamos três (3) estratégias que visam facilitar a recomendação de produtos aos nossos usuários que são: Itens mais avaliados,Itens mais comprados,Itens mais clicados.

8.4 Técnicas de Recomendação

Sistema de Recomendação funcionam como um conselheiro, se comportando de tal maneira a guiar os usuários em suas descobertas de produtos que podem vir a gostar, agindo assim como um amigo que lhe recomenda um filme ou um livro. As técnicas de recomendação implementadas no presente trabalho, visam facilitar e tornar o nosso sistema de recomendação mais ágil e prático, com intuito de melhorar a experiência do usuário dentro do nosso site. [SISTEMA DE RECOMENDAÇÃO, EDJALMA QUEIRÓZ E CELSON CAMILO]

8.5 Filtragem Híbrida

A escolha da filtragem hibrida foi uma decisão inteligente ao desenvolver o nosso sistema, por um simples fato ele combina duas técnicas poderosas como a filtragem baseado em conteúdo e filtragem colaborativa, visando criar um sistema que possa melhor atender as necessidades do usuário. 122


Entre as vantagens da abordagem híbrida é que é possível recomendar bons itens a um usuário mesmo que não haja usuários semelhantes a ele, pois com essa abordagem é possível lidar com itens não vistos por outros usuários e caso ocorra o contrário as experiências de outros usuários são levadas em consideração e o sistema assim sugere alguns itens. [J. HERLOCKER 2004, J. BEN SHAFER 2001]

Figura 97: Filtragem Híbrida

8.6 Ferramentas

O nosso sistema foi desenvolvido utilizando-se a linguagem de programação PHP, pois é uma linguagem muito utilizada para o desenvolvimento web e pode ser mesclada dentro de códigos HTML (Hypertext Markup Language). Um dos motivos de se escolher a linguagem PHP é por ela ser interpretada no lado do servidor, sendo assim relativamente segura para o desenvolvimento web. [PHP.Net, 2014]

O banco de dados utilizado no desenvolvimento foi o MySQLpor ser consideravelmente simples a sua conexão com o PHP, e por ser um SGBD relacional mais populares e Open Source, pois é um sistema de gerenciamento de banco de dados bastante rápido e de fácil utilização. [WELLING; THOMSON, 2005] A parte visual (Front End) do nosso sistema foi desenvolvido utilizando-se o framework “Twitter Bootstrap” por ser um dos frameworks mais popular atualmente

123


fácil de usar quando assunto é desenvolvimento web, além disso o framework integra 3 tecnologias bastante úteis como CSS, HTML5, JavaScript, também nos permite importar bibliotecas externas tais como Jquery, Sass, Less entre outros.

8.7 Arquitetura De Sistema De Recomendação

A figura abaixo mostra como foi implementado o nosso sistema de recomendação. A mesma arquitetura foi implementada pela primeira vez por (J.Ben Schafer) em 2000, foi modificada e adaptada tendo em conta as tecnologias utilizadas no presente sistema.

Figura 98: Arquitetura do sistema de recomendação (Schafer, 2000) Adaptado e modificado por Filipe Nzongo & Michel Akira

124


CONCLUSÃO Sistema de Recomendação é uma tecnologia cada vez mais indispensável às empresas que desejam potencializar e promover seus negócios. Ao mesmo tempo, ele ajuda a solucionar o problema de excesso de informação, filtrando os demais conteúdos que não sejam relevantes para as pessoas que interagem com essa tecnologia. 9.1 Considerações Finais Para manter um relacionamento sólido e duradouro com o cliente são necessárias melhorias contínuas. Nosso projeto implementa um sistema para recomendação de produtos com a base nos interesses de cada usuário e contexto na qual estão inseridos, coletando assim as informações dos mesmos, para facilitar e melhorar as recomendações, a fim de tornar o sistema de recomendação mais eficaz e eficiente. Ao longo do desenvolvimento deste trabalho, usamos técnicas que se referiam à personalização de web sites. Entretanto o sistema de recomendação pode ser aplicado em diversas áreas da Web, não somente em E-commerce, como por exemplo, em sites de notícias com intuito de otimizar e melhorar a experiência do leitor no site. 9.2 Contribuições do Projeto Ao longo do desenvolvimento do trabalho, percebeu-se a necessidade de elaborar uma arquitetura cuja função básica é tornar eficaz e eficiente o sistema de recomendação proposto, coletando as informações oportunas e relevantes dos nossos clientes. A principal contribuição desse projeto foi a arquitetura do nosso sistema [Figura 98. Pág. 128], a qual foi baseado na arquitetura padrão do sistema de recomendação elaborado por (J.Ben Schafer) em 2000, e foi modificada e adaptada por (Filipe Landu Nzongo e Michel Akira Matuyoshi) em 2016 a fim de atender o conjunto de tecnologias utilizadas no projeto. As Estratégias de Recomendação é uma parte da arquitetura responsável pela implementação de diferentes tipos de estratégias que podem ser usadas para personalizar as recomendações para um usuário. Foi implementada uma estratégia 125


de recomendação hibrida que consiste combinar duas técnicas de recomendação que são “Filtragem baseada em conteúdo e “Filtragem colaborativa” formando assim a “Filtragem híbrida”. A arquitetura proposta também prevê um modulo para segurança de vendas dos produtos no e-commerce, onde optamos em realizar a forma de pagamento por meio do PagSeguro, uma plataforma de pagamento online, para manter o compromisso em atender e satisfazer suas necessidades. 9.3 Trabalhos Futuro Finalmente, são delineados alguns possíveis trabalhos futuros. - A melhoria no desempenho do sistema proposto é uma das tarefas mais importante a fim de mantê-la em funcionamento de modo a atender os requisitos especificados no projeto. - Implementação de um repositório para sistema de controle de versão GIT por ser um sistema de controle de versão permanente, eficaz e simples de usar, de código de fonte aberto escrito em linguagem C e conta também com numerosos scripts em shell, para definir as estratégias de controle de versão do ficheiros armazenados nesse repositório, permitindo assim maior controle da versão sobre qual desejamos usar. - Identificou-se a necessidade de implementar um banco de dados NoSQL orientado a grafos de código de fonte aberto denominado NEO4J escrito em JAVA, o qual fornece características de banco de dados completo, incluindo suporte de cluster, tornando-o adequado para usar grafos em produção. Os bancos de dados grafos poderiam facilitar as buscas em nossa arquitetura proposta. - Identificou-se também a necessidade de implementar um serviço que vem ganhando cada vez mais importância na internet e bastante útil na fidelização dos clientes, como a plataforma E-Millennium que utiliza a API padrão ODATA que permite trocar informações utilizando REST, JSON e XML. O serviço é um web-SAC ou serviço de atendimento ao consumidor via internet. O E-Millennium permite que a organização tenha acesso a todas as informações registradas nos atendimentos ao consumidor, como: e-mail, formulários da plataforma de e-commerce, chat online, redes sociais e ReclameAQUI, as quais são registradas no banco de dados do E126


Millennium, auxiliando a organização no momento da tomada de decisão por meio do BI – Business Intelligence – sendo possível criar análises com base das chamadas atendidas, gerador de relatórios, gráficos, cubos de decisão e dashboards consolidando mais as operações de atendimento e relacionamento com o cliente.

127


REFERÊNCIAS BIBLIOGRÁFICAS 1. Livros 1.1 ENGHOLM, HÉLIO JR. Engenharia de Software na Prática. (p.20) 1.2 BEZERRA, EDUARDO. Princípios de Analise e Projeto De Sistemas com UML, uma guia prática para modelagem de sistemas orientados a objetos através da Linguagem de Modelagem Unificada. (p.2, 3, 15, 19) 1.3DOSVIENA REIS, DANIELA BORGES. Web Design - Noções Básicas. P.23, 187. 1.4 CAVANAUGH, KIM; SCHWARTZ, ROB, Learn Adobe Dreamweaver CC for Web Authoring. 1.5 KRAHENBUHL, JOHN HENRY, Axure RP Prototyping Cookbook. 2014 2. Artigos Científicos 2.1 LEMIRE, Daniel. Maclachlan, Anna. Slope One Predictors for Online RatingBased Collaborative Filtering, In SIAM Data Mining (SDM'05), Newport Beach, California, April 21-23, 2005. 2.2 ADOMAVICIUS, G. TUZHILIN, A. Towards the NextGeneration of RecommenderSystems: A Survey of the State-of-the-Art and Possible Extensions. 2005. 2.3 CANDILLIER, LAURENT. MEYER, FRANK. JACK, KRIS. FESSANT, FRANÇOISE. State-of-the-Art RecommenderSystems. 2.4 LINDEN, GREG. SMITH, BRENT. YORK JEREMY. Recommendations Item-to-Item Collaborative Filtering.

Amazon.com

2.4 BASU, C., HIRSH, H., & COHEN, W.(July 1998). Recommendation as classification: Using social and content-based information in recommendation. In Proceedings of the fifteenth national conference on artificial intelligence (AAAI98), Madison, Wisconsin (pp. 714–720).

128


3. Referência de meio eletrônicos (Internet) 3.1 REATEGUI, ELISEO BERNI; CAZELLA, SÍLVIO CÉSAR, Sistemas de recomendação. 2012. Disponível em: http://www.cin.ufpe.br/~fab/aulas-RI/Sistemas-de-Recomendacao.pdfAcesso em 25 de Maio de 2016. 3.2 SILVA, REGINALDO, Desenvolvimento de um sistema de informações geográficas em ambiente Web. 2009. Disponível em: http://www.ebah.com.br/content/ABAAABA7wAL/desenvolvimento-sistemainformacoes-geograficas-ambiente-web-gestao-espacial-estacoes-radio-base Acesso em 22 de Maio de 2016. 3.3 DE SOUZA, RENATA GHISLOTI DUARTE, Sistemas de Recomendação. Aplicando Sistemas de Recomendação em Situações Práticas. Software Engineer, Linux Technology Center – IBM, 28 de Maio de 2014. Disponível em: https://www.ibm.com/developerworks/br/local/data/sistemas_recomendacao/Aces so em 19 de Maio de 2016. 3.4 MELVILLE, PREM; SINDHWANI, VIKAS, Recommender Systems, Encyclopedia of Machine Learning.2010.Disponível em: http://citeseerx.ist.psu.edu/viewdoc/citations;jsessionid=D12FA3C999C78740756 DF17DDE9FFBB8?doi=10.1.1.163.3573 Acesso em 28 de Maio de 2016 3.5 KNOW THOMAS, Adobe Photoshop File Formats Specification. 2013. Disponível em: https://www.adobe.com/devnetapps/photoshop/fileformatashtml/#50577409_pgfId-1056424 Acesso em 17 de Maio de 2016. 3.6 KNOW THOMAS, Adobe Illustrator File Format Specification. 1998. Disponível em: https://www.partners.adobe.com/public/developer/en/illustrator/sdk/AI7FileFormat. pdf Acesso em 17 de Maio de 2016.

3.7 MySQL Workbench. 2010. Disponível em: https://www.mysql.com/products/workbench/ Acesso em 20 de Maio de 2016.

129


3.8 CARNEIRO, BRUNO SEABRA, O QUE É ASTAH? 2015. Disponível em: http://www.startupsstars.com/2015/10/o-que-e-o-astah-posttecnico-por-brunoseabra/ Acesso em 28 em Maio 2016.

3.9 RICARDO, JOSÉ,Introdução ao MySQL. 2013. Disponível em: http://www.devmedia.com.br/introducao-ao-mysql/27799 / Acesso em 26 de Maio de 2016. 3.10 DE ALMEIDA, JOSÉ HENRIQUE MONTEIRO, PHP com MySQL. 2012. Disponível em: http://www.cin.ufpe.br/~ags/2464_php_com_mysql.pdf Acesso em 27 de Maio de 2016. 3.11 SANTOS, ELISABETE DA SILVA, JavaScript. 2013. Disponível em: http://www.apostilando.com/download.php?cod=3342&categoria=JavaScript Acesso em 27 de Maio de 2016. 3.12 FURLAN, MARCOS PAULO, JQuery. 2012. Disponível em: http://www.apostilando.com/download.php?cod=3294&categoria / Acesso em 27 de Maio 2016. 3.13 FERREIRA, ELCIO; ELIS, DIEGO, HTML. 2013. Disponível em: http://www.apostilando.com/download.php?cod=3340&categoria=HTML Acesso em 26 de Maio de 2016. 3.14 FERREIRA, ELCIO; ELIS, DIEGO, HTML5. 2013. Disponível em: http://www.apostilando.com/download.php?cod=3340&categoria=HTML Acesso em 26 de Maio de 2016. 3.15 Curso W3C Escritório Brasil, Cascading Style Sheets. 2013. Disponível em: http://www.w3schools.com/css/default.asp Acesso em 26 de Maio de 2016.

130


3.16 Pagseguro. Disponível em: https://blogpagseguro.com.br/2014/05/o-que-e-pagseguro/ Acesso em 17 de Novembro de 2016. 3.17 FPDF. Disponível em: http://www.fpdf.org/ Acesso em 17 de Novembro de 2016 3.18 MySQL Query Browser. Disponível em: http://downloads.mysql.com/docs/query-browser-pt.a4.pdf Acesso em 17 de Novembro de 2016 3.19 Twitter Bootstrap. Disponível em: http://thiagonasc.com/desenvolvimento-web/desenvolvendo-com-bootstrap-3-umframework-front-end-que-vale-a-pena Acesso em 17 de Novembro de 2016 3.20 EDJALMA QEIRÓZ E CELSON CAMILO. Sistema de recomendação. 2011. Disponível em: http://www.lbd.dcc.ufmg.br/colecoes/enia/2005/0100.pdf Acesso em 30 de Novembro de 2016 3.21 J. BEN SCHAFER, DAN FRANKOWSKI, JON HERLOCKER, AND SHILAD SEN. Collaborative Filtering Recommender Systems. 2006. Disponível em: http://faculty.chas.uni.edu/~schafer/publications/CF_AdaptiveWeb_2006.pdf Acesso em 29 de Novembro de 2016 3.22 LIANG XIANG, Recommender system algorithm and architecture. 2012. Disponível em: http://pt.slideshare.net/xlvector/recommender-system-algorithm-and-architecture13098396 Acesso em 30 de Novembro de 2016 3.23 WELLING THOMSON, Php MySQL Web. 2005. Disponível em: http://ahvaz.ist.unomaha.edu/azad/temp/softarch/05-welling-php-mysql-web.pdf Acesso em 30 de Novembro de 2016 3.24 Php, What Is Php. (Personal Hypertext Preprocessor). 2014. Disponível em: https://secure.php.net/manual/pt_BR/intro-whatis.php Acesso em Novembro de 2016 131

30

de

TCC - E commerce Baseado em Sistema de Recomendação  

O presente trabalho de conclusão de curso tem como objetivo criar um sistema de recomendação automatizado, baseado em e-commerce a fim de re...

TCC - E commerce Baseado em Sistema de Recomendação  

O presente trabalho de conclusão de curso tem como objetivo criar um sistema de recomendação automatizado, baseado em e-commerce a fim de re...

Advertisement