Sistema para Comparação de Preços de Lojas Físicas - PDF
Sistema para Comparação de Preços de Lojas Físicas
Download "Sistema para Comparação de Preços de Lojas Físicas"
Silvana Figueiroa Vilarinho
1 Universidade de Brasília - UnB Faculdade UnB Gama - FGA Engenharia de Software Sistema para Comparação de Preços de Lojas Físicas Autores: Tallys Gustavo Martins e Winstein Caldeira Martins Orientador: Prof. Doutor Nilton Correia da Silva Brasília, DF 2015
3 Tallys Gustavo Martins e Winstein Caldeira Martins Sistema para Comparação de Preços de Lojas Físicas Monografia submetida ao curso de graduação em Engenharia de Software da Universidade de Brasília, como requisito parcial para obtenção do Título de Bacharel em Engenharia de Software. Universidade de Brasília - UnB Faculdade UnB Gama - FGA Orientador: Prof. Doutor Nilton Correia da Silva Brasília, DF 2015
4 Tallys Gustavo Martins e Winstein Caldeira Martins Sistema para Comparação de Preços de Lojas Físicas/ Tallys Gustavo Martins e Winstein Caldeira Martins. Brasília, DF, p. : il. (algumas color.) ; 30 cm. Orientador: Prof. Doutor Nilton Correia da Silva Trabalho de Conclusão de Curso Universidade de Brasília - UnB Faculdade UnB Gama - FGA, Comparação de preços. 2. Estabelecimentos comerciais. I. Prof. Doutor Nilton Correia da Silva. II. Universidade de Brasília. III. Faculdade UnB Gama. IV. Sistema para Comparação de Preços de Lojas Físicas CDU 02:141:005.6
5 Tallys Gustavo Martins e Winstein Caldeira Martins Sistema para Comparação de Preços de Lojas Físicas Monografia submetida ao curso de graduação em Engenharia de Software da Universidade de Brasília, como requisito parcial para obtenção do Título de Bacharel em Engenharia de Software. Trabalho aprovado. Brasília, DF, 01 de junho de 2015: Prof. Doutor Nilton Correia da Silva Orientador Prof. Doutor Luiz Augusto Fontes Laranjeira Convidado 1 Prof. Doutor Fabricio Ataides Braz Convidado 2 Brasília, DF 2015
7 Agradecimentos de Tallys Gustavo Martins Agradeço primeiramente a Deus pelo dom da vida. Agradeço também ao grande amigo e co-autor deste trabalho, Winstein Martins, e ao nosso querido professor orientador Dr. Nilton Correia por suas contribuições na construção das ideias e desenvolvimento da proposta. E também, obrigado a todos aqueles que participaram de maneira construtiva da minha formação até o presente momento na Faculdade UnB Gama.
9 Agradecimentos de Winstein Caldeira Martins Agradeço primeiramente aos meus pais pela educação, direcionamento e, principalmente, apoio total em todos os momentos da minha vida. Agradeço ao amigo e co-autor deste trabalho, Tallys Martins, que dividiu a carga de trabalho e ajudou em todas as fases do projeto. Sou muito grato ao professor orientador deste trabalho, Nilton Correia, que teve papel muito importante no amadurecimentos do trabalho. Agradeço também aos proprietários dos estabelecimentos comerciais que mantive contato durante a execução do trabalho. Agradeço à Universidade de Brasília, em especial à Faculdade do Gama, que me proporcionou muito conhecimento durante a graduação, assim como todos os colegas que participaram da minha formação acadêmica de alguma forma.
11 Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do homem foram conquistadas do que parecia impossível. (Charles Chaplin)
13 Resumo Existem hoje diversas ferramentas para comparação de preços de lojas virtuais, como BondFaro, Buscapé e outros. No entanto, não existem tais ferramentas que atendem e busquem informações em lojas físicas da mesma maneira e com a mesma eficiência. Desta forma, este trabalho apresenta os estudos feitos para desenvolver uma ferramenta que explore este nível do mercado, que se distribui em diversos nichos, como farmacêutico, mercado varejista, eletrônicos e outros, com o objetivo de permitir aos consumidores uma comparação entre produtos de lojas físicas, o que traz também em consideração aspectos de localização como fator de peso para as pesquisas e decisões tomadas pelos consumidores na hora da compra. Este trabalho foi dividido em 5 etapas, que analisam desde a viabilidade da proposta, procurando maneiras de identificar os produtos em cada loja e também maneiras de se obter seus preços, até a definição de requisitos para a construção da ferramenta. Ao fim deste trabalho, são apresentadas as tecnologias que serão utilizadas para a construção do protótipo funcional com as funcionalidades básicas para comparação de preços e sua utilização com dados reais. Palavras-chaves: comparação de preços. estabelecimentos comerciais. lojas físicas.
15 Abstract Nowadays there are several tools for comparison of virtual stores prices as Bondfaro, Buscapé and others. However, there are no such softwares that search for informations in physical stores in the same manner and with the same efficiency. Thus, this paper introduces the studies made to develop a tool that exploits this level of the market in all of it s niches, such as pharmaceutical, retail market, electronics and others, in order to allow consumers to compare products in physical stores, which also brings into consideration aspects of location as an important factor for researches and decisions made by consumers when buying. This work was divided into five steps, from analyzing the feasibility of the proposal, seeking ways to identify the products in each store and finding ways of getting their prices, to the definition of requirements for the construction of the tool. At the end of this paper, it will be presented the technologies to be used in the construction of a working prototype that gazes the basic features for price comparison, with the use of real data. Key-words: price comparison. shopping facilities. physical stores.
17 Lista de ilustrações Figura 1 Quantidade de pessoas que já fizeram compra pela Internet em milhões (E-BIT, 2014) Figura 2 Faturamento com vendas online (E-BIT, 2014). Adaptado Figura 3 Código de barras nos padrões EAN e UPC (GS1 BRASIL, 2015) Figura 4 Composição do código de barras no padrão EAN (CASTILHO, 2015).. 32 Figura 5 Interação dos usuários e parceiros com o sistema. Fonte: Autores Figura 6 Tempo de leitura, em milissegundos, de cada banco de dados vs Quantidade de operações (LI; MANOHARAN, 2013) Figura 7 Estrutura analítica do trabalho de conclusão de curso organizada por etapas de trabalho
19 Lista de tabelas Tabela 1 Interessados no projeto (stakeholders) Tabela 2 Necessidades dos interessados no projeto
21 Lista de abreviaturas e siglas API CEP CRUD CSS DF EAN HTML I/O JSON NoSQL PHP REST SQL UPC US XML Application Programming Interface Código de Endereçamento Postal Create Retrieve Update Delete Cascading Style Sheets Distrito Federal European Article Number HyperText Markup Language Input/Output JavaScript Object Notation Not Only Structured Query Language Hypertext Preprocessor Representational State Transfer Structured Query Language Universal Product Code User Story extensible Markup Language
23 Sumário 1 INTRODUÇÃO Contexto Problema Objetivos Objetivo Geral Objetivos Específicos Justificativa Benefícios Crescimento do E-Commerce Caso Semelhante de Sucesso Método Etapa A: Consolidar o entendimento sobre a identificação de produtos Etapa B: Definir forma de obtenção de informações sobre os produtos Etapa C: Definir requisitos para a ferramenta de comparação Etapa D: Definir aspectos tecnológicos da solução proposta Etapa E: Implementar comparador de preços Estrutura do Trabalho EXECUÇÃO Etapa A: Consolidar o entendimento sobre a identificação de produtos Órgãos Reguladores Etapa B: Definir fonte de obtenção de informações sobre os produtos Obtenção dos dados atualizados dos produtos Dados necessários Responsabilidades das partes Políticas da parceria Etapa C: Definir requisitos para a ferramenta de comparação Requisitos do Sistema US01 - Pesquisar preços de um produto US02 - Definir região de busca US03 - Sugerir Correção de Produto US04 - Manter informações do estabelecimento parceiro US05 - Inserir dados de produtos Etapa D: Definir aspectos tecnológicos da solução proposta Aplicação mobile
24 2.4.2 Aplicação Web Banco de Dados CONSIDERAÇÕES FINAIS CRONOGRAMA Referências
25 23 1 Introdução 1.1 Contexto Todo e qualquer membro de uma sociedade é um consumidor ativo de bens e serviços (BARBOSA; CAMPBELL, 2006). O consumo está presente em toda e qualquer sociedade humana (BARBOSA, 2004). A crença de que comprar em liquidações é algo vantajoso está embutida em nossa cultura de consumo. Tal afirmativa serve até mesmo para validar as justificativas para as compras. É comum utilizar-se de explicações do tipo comprei porque estava na promoção. (XAVIER, 2013) Todo cidadão é um consumidor e todo bom consumidor busca economizar ao máximo, seja evitando compras desnecessárias ou buscando o menor preço. Buscar o menor preço para um determinado produto em lojas físicas é uma tarefa que requer certo esforço, pois é necessário consultar o preço em vários estabelecimentos uma a uma. Após encontrar o menor preço, o consumidor pode efetuar a compra consciente de que está economizando, ou pelo menos evitando gastar mais dinheiro. Em junho de 1999 surgiu o BuscaPé, um site para comparação de preços de produtos em lojas virtuais. Através dele é possível saber o preço de determinado produto em várias lojas virtuais gratuitamente, facilitando a busca pelo menor preço por parte dos consumidores, que precisam apenas informar o produto desejado. [...] o BuscaPé é uma empresa brasileira de comparação de preços e outras informações para a compra de produtos e serviços, com atuação na América Latina [...] (ARRUDA; ROSSI; PENIDO, 2011). Em junho de 2000, foi lançado o Bondfaro, uma ferramenta muito semelhante ao Buscapé, que oferece os mesmo serviços também de forma gratuita. Segundo Romero Rodrigues (2011), presidente do BuscaPé em 2011, citado por (ARRUDA; ROSSI; PENIDO, 2011), Eles (Bondfaro) 1 tinham um modelo de negócio idêntico ao nosso e uma estratégia de seguidor bastante inteligente, que consistia em não arriscar nada e desenvolver o que nós tivéssemos desenvolvido e tivesse dado certo. Posteriormente outros comparadores de preços surgiram, como o Zoom, JáCotei e etc. Os comparadores têm em comum a comparação de preços de produtos em lojas virtuais, exclusivamente. Neste cenário, as ferramentas para comparação de preços estimulam a concorrência entre as lojas, porém exclusivamente entre as lojas virtuais. As lojas físicas estavam 1 Adaptado pelos autores.
26 24 Capítulo 1. Introdução excluídas, até que surgiram ferramentas que fazem comparação de preços de estabelecimentos físicos. O FaciLista e o MeuCarrinho são ferramentas que fazem comparações de produtos de supermercados. Com eles é possível saber o valor de diversos produtos em diversos supermercados, próximos ou não de onde o usuário está localizado. Esses aplicativos atingem uma fatia do mercado não explorada até então, e dão margem para o surgimento de novas ferramentas. 1.2 Problema Visto que o mercado de comparação de preços de lojas virtuais é bem explorado por diversas ferramentas e que o mercado de comparação de preços de estabelecimentos físicos não é, o problema abordado neste trabalho é a ausência de uma ferramenta capaz de realizar comparações de preços de produtos comercializados por estabelecimentos físicos de maneira geral, não apenas supermercados. Até o momento de desenvolvimento deste trabalho de conclusão de curso não foram encontradas ferramentas capazes de realizar tais comparações, foram encontradas apenas para lojas virtuais. 1.3 Objetivos Objetivo Geral O objetivo geral desse trabalho é desenvolver uma ferramenta para comparação de preços de produtos comercializados por lojas físicas, para estimular a concorrência entre os estabelecimentos e facilitar a busca pelo menor preço por parte do consumidor. Propõe-se a criação de uma aplicação multiplataforma, Web e mobile, que tenha uma interface para introdução das informações sobre os produtos por parte dos estabelecimentos comerciais e que permita aos usuários a realização da busca e visualização das informações sobre os produtos de interesse Objetivos Específicos Buscando alcançar e satisfazer o objetivo geral, o trabalho foi divido em cinco etapas, as quais são descritas a seguir: Consolidar o entendimento sobre a identificação de produtos; Definir forma de obtenção de informações sobre os produtos; Definir requisitos e tecnologias que melhor atendem as necessidades do problema Implementar o sistema comparador de preços.
27 1.4. Justificativa Justificativa Um sistema que realiza comparação de preços envolve a obtenção e armazenamento dos preços de cada produto em cada estabelecimento e a disponibilização dessas informações aos usuários. Além de estimular a concorrência entre as empresas, esse tipo de ferramenta facilita a pesquisa de preço e economia pelos consumidores, que não precisam visitar ou entrar em contato com cada estabelecimento comercial para obter os valores dos produtos. Visto que as ferramentas para comparação de preços de produtos em estabelecimentos físicos não são amplamente difundidas e exploram apenas uma pequena parte do mercado de consumo do cidadão, esse trabalho tem o objetivo de atacar o setor de lojas físicas de maneira a desenvolver uma solução que se aplique também a qualquer outra área comercial que lida com produtos industrializados, tais como o setor farmacêutico, lojas de conveniências, comércio de eletrônicos e outros onde os produtos recebem uma identificação única advinda de seus fabricantes. São apresentados, a seguir, três motivos que levaram a escolha do tema abordado neste trabalho Benefícios A criação de uma ferramenta para comparação de preços de produtos em estabelecimentos comerciais físicos traz muitos benefícios, tanto para os usuários como para os empresários. A facilidade de pesquisar o preço de vários produtos em diversos estabelecimentos em uma aplicação em poucos segundos gera algumas consequências positivas para os consumidores, como a extinção da necessidade de entrar em contato com estabelecimentos para consulta de preço e a diminuição de preços pelo estímulo da concorrência. Como já foi citado, a consulta de preços é trabalhosa e demanda tempo, porém pode se tornar uma tarefa simples. O estímulo da concorrência pode acarretar na diminuição dos preços dos produtos, pois um estabelecimento de varejo almeja sempre ter preços menores do que seus concorrentes. Do ponto de vista dos lojistas também existem benefícios. Muitas vezes quando um consumidor deseja consultar o preço de algum produto em uma loja, seja por telefone ou presencialmente, é necessário que algum funcionário perca tempo lhe atendendo apenas para dar esta informação. Esse tempo poderia ser utilizado para a realização de outras atividades. Com a utilização do comparador, o consumidor deixaria de realizar essa prática. Outro ponto favorável é a exposição e divulgação da empresa para um extenso número de pessoas que utilizam a internet como ambiente de pesquisa e compra de produtos, local onde se encontra o comparador de preços.
28 26 Capítulo 1. Introdução Crescimento do E-Commerce E-Commerce é o termo utulizado para se definir o comércio através da Internet (NASCIMENTO, 2011). As lojas online estão cada vez mais presentes na vida do brasileiro. Em 2014, o Brasil contava com 61,6 milhões de pessoas que já fizeram compras pela Internet. Em 2013, esse número era de 51,3 milhões de pessoas, crescimento de 20% (E-BIT, 2014). Figura 1 Quantidade de pessoas que já fizeram compra pela Internet em milhões (E- BIT, 2014). O faturamento com vendas acompanhou o crescimento da quantidade de pessoas que compram em lojas online. Em 2013, o faturamento com vendas no comércio eletrônico foi de R$ 28,8 bilhões. Em 2014, o faturamento foi de R$ 35,8 bilhões, crescimento de 24% em relação ao ano anterior (E-BIT, 2014).
29 1.4. Justificativa 27 Figura 2 Faturamento com vendas online (E-BIT, 2014). Adaptado. [...] o e-commerce no país tem uma tendência de crescimento [...]. O comércio eletrônico têm se mostrado bastante inovador e com capacidade de concorrer com o varejo tradicional. [...] o e-commerce não é uma tendência passageira e é um segmento do varejo que vem mostrando números expressivos. (NASCIMENTO, 2011) Os dados sobre e-commerce apresentados anteriormente demonstram que esse é um mercado crescente, que atinge milhões de pessoas e movimenta bilhões de reais por ano. Apesar deste trabalho não ser direcionado a criação de uma loja virtual, o tema está inserido no contexto, pois trata da utilização de Internet para aquisição de bens de consumo. Tudo isso reforça uma frase de Bill Gates: Daqui a algum tempo só existirão dois tipos de empresas: as que estão na Internet e as que não estão em lugar algum Caso Semelhante de Sucesso Durante as pesquisas feitas para o desenvolvimento deste trabalho foi encontrado um aplicativo para comparação de preços de produtos de mercados varejistas chamado Facilista, como citado na seção 1.1. Lançado em 2014, o aplicativo começou sua operação nos estados Rio de Janeiro e São Paulo, e atualmente reúne informações de cerca de 80 redes de supermercados, monitorando aproximadamente 1,5 milhões de produtos de diferentes estabelecimentos, o que gera uma publicação diária de cerca de 150 mil ofertas de produtos na plataforma (FACILISTA, 2015).
30 28 Capítulo 1. Introdução O aplicativo conta com mais de 16 mil seguidores em sua página do Facebook e já possui mais de 10 mil downloads na Play Store. Esta quantidade de usuários reflete uma clara mudança no comportamento dos consumidores no que tange a comparação de preços de produtos, que aderiram a ideia de utilizar uma ferramenta automatizada para comparar preços e consequentemente economizar nas compras. Apesar do sucesso, o aplicativo cobre apenas o nicho de supermercados e inclui somente parte da região Sudeste, o que levou a expansão desta ideia, partindo inicialmente do Distrito Federal, que é o foco deste trabalho. 1.5 Método O desenvolvimento do trabalho está dividido em cinco etapas distintas que comportam as metas levantadas pelos objetivos específicos na seção Etapa A: Consolidar o entendimento sobre a identificação de produtos Nesta etapa foram feitas pesquisas com o objetivo de entender como funciona o mercado varejista com relação aos sistemas de identificação dos produtos e como seria possível identificar e diferenciar o preço de um mesmo produto em vários estabelecimentos. Foi levantada a hipótese em que os estabelecimentos utilizariam um código único para identificação dos produtos. Então, para verificação da hipótese foram feitas pesquisas online e visitas a alguns estabelecimentos comerciais para investigar se estes utilizavam em seus sistemas algum código de identificação único. Após a confirmação da hipótese, conseguiu-se encontrar uma forma de fazer este mapeamento, cuja solução foi o sistema de código de barras. As palavras-chaves que conduziram as pesquisas foram: código de barras, código único, produtos Etapa B: Definir forma de obtenção de informações sobre os produtos Após estabelecer um meio para identificar um mesmo produto em diferentes estabelecimentos comerciais, era necessário definir o modo de obtenção das informações sobre os produtos. Então, foram identificados quais seriam os dados necessários para identificar e comparar os produtos entre os estabelecimentos e a partir dos dados, foi determinado um modelo baseado em parcerias entre estabelecimentos e mantenedores do sistema comparador de preços, onde as empresas fornecem diretamente as informações sobre seus produtos. Para delimitar o alcance e formato de funcionamento da parceria e também para
31 1.5. Método 29 evidenciar os direitos e deveres dos envolvidos, foram estabelecidas algumas responsabilidades e políticas para esta Etapa C: Definir requisitos para a ferramenta de comparação Com base no problema identificado, foram levantados alguns requisitos para o desenvolvimento do protótipo funcional a ser apresentado no trabalho de conclusão de curso 2. Estes requisitos foram elicitados com base nas necessidades identificadas para os stakeholders e seriam suficientes para a implementação da arquitetura inicial do sistema. Foram consideradas as necessidades fundamentais de cada interessado para o funcionamento básico da aplicação, cuja as funcionalidades do protótipo se resumiram em uma busca simples de um produto para comparação e o cadastro de um estabelecimento parceiro e seus produtos com suas respectivas informações. Não foi o foco desta etapa elicitar todos os requisitos do sistema, o processo de construção da aplicação se dará de forma evolutiva e adaptativa, logo não foi e nem será feito um esforço para delimitar todo o escopo da aplicação de maneira prescritiva Etapa D: Definir aspectos tecnológicos da solução proposta Nesta etapa foram feitas pesquisas para encontrar tecnologias que oferecessem os recursos necessários para o desenvolvimento do protótipo funcional, abrangendo as aplicações Web e mobile. Então, foram estudados frameworks, linguagens de programação e sistemas de banco de dados que melhor atendessem as características da solução, como manipulação de grande quantidade de transações e suporte a múltiplas plataformas. A decisão de se implementar aplicação mobile multiplataforma guiaram as pesquisas no sentido de encontrar ferramentas que dessem suporte ao desenvolvimento de aplicativos que se adequem a diferentes plataformas. As palavras-chaves que conduziram este estudo foram: apache cordova, NoSQL, MogoDB, multiplataforma Etapa E: Implementar comparador de preços A etapa E (etapa final) consiste em consolidar os resultados das etapas anteriores e produzir os protótipos funcionais. Serão utilizadas as tecnologias definidas na etapa D para construir os produtos que atendam aos requisitos definidos na Etapa C, que satisfazem as necessidades dos envolvidos. Esta etapa será realizada no trabalho de conclusão de curso 2. A seção 4 apresenta as atividades a serem executadas nesta fase final do trabalho.
32 30 Capítulo 1. Introdução 1.6 Estrutura do Trabalho O trabalho é dividido em três capítulos. O capítulo 1 compreende uma contextualização sobre ferramentas de comparação de preços, objetivos, justificativas e o método utilizado para o desenvolvimento do trabalho. O capítulo 2 abrange os resultados obtidos após a execução de cada etapa definida na seção 1.5. No capítulo 3 são apresentadas as considerações finais do trabalho. E, por fim, é apontado o cronograma que guiará a execução da segunda parte do trabalho.
33 31 2 Execução 2.1 Etapa A: Consolidar o entendimento sobre a identificação de produtos Órgãos Reguladores O código de barras é a identificação atribuída a um produto, unidade logística, documentos, contêineres, entre outros. O código é utilizado para facilitar a captura de dados através de um leitor ou coletor de código de barras e identifica de forma única e global cada tipo de produto. Existem variações destes códigos que servem a diversos fins, as quais destas variações destacamos os padrões EAN e UPC. Os códigos EAN e UPC foram desenvolvidos especificamente para leitura no ponto de venda e são caracterizados pela agilidade na captura da informação. Estes são os códigos mais difundidos no mercado, tendo os EUA e Canadá como utilizadores do padrão UPC, e o restante do mundo (inclusive o Brasil) como acolhedores do padrão EAN. Os dois códigos possuem estrutura semelhante e servem ao mesmo propósito, sendo o código UPC composto por 12 dígitos e o código EAN composto por 13 dígitos (GS1 BRASIL, 2015). Figura 3 Código de barras nos padrões EAN e UPC (GS1 BRASIL, 2015). O ato deste trabalho estar sendo desenvolvido com foco no mercado brasileiro implica em estudos baseados no código EAN, que é a variação utilizada por este país. Desta forma, observamos a composição única do padrão EAN dada pela união de quatro componentes: código do país, código da empresa, código do produto e dígito verificador. A Figura 4 mostra a composição do código de barras em questão:
34 32 Capítulo 2. Execução Figura 4 Composição do código de barras no padrão EAN (CASTILHO, 2015). A identificação única e global de cada produto conforme o código de barras torna possível a comparação deste em diferentes estabelecimentos comerciais visto que este código é o mesmo em todas as lojas. 2.2 Etapa B: Definir fonte de obtenção de informações sobre os produtos Obtenção dos dados atualizados dos produtos Para popular o banco de dados da ferramenta é necessário obter informações sobre os produtos comercializados por cada estabelecimento. Assim, quanto mais informações de diferentes estabelecimentos forem atingidos, mais comparações serão possíveis, tornando a ferramenta mais completa e atraente para os futuros usuários. Desta forma, a estratégia adotada para a obtenção dos preços dos produtos foi o estabelecimento de uma parceria com as lojas físicas, obtendo os dados diretamente a partir da fonte da informação. Assim, o método de captação dos dados irá consistir em um processo onde os lojistas enviam as informações para a ferramenta através de um meio informatizado a ser ainda discutido em capítulos posteriores deste trabalho Dados necessários Para a correta identificação e atualização das informações de cada produto são definidas os seguintes dados: código de barras do produto nome ou descrição do produto
35 2.2. Etapa B: Definir fonte de obtenção de informações sobre os produtos 33 preço do produto quantidade em estoque (opcional) Para a correta identificação e apresentação do estabelecimento na ferramenta, são definidos os seguinte informes: nome razão social cnpj endereço telefone horário de funcionamento realiza entrega? logo (opcional) (opcional) site (opcional) Responsabilidades das partes Conforme a definição da estratégia a ser adotada, foram elicitadas algumas responsabilidades de cada parte envolvida no projeto a fim de esclarecer o papel de cada um, parceiros e mantenedores da ferramenta. Logo, registra-se como atividades de encargo dos estabelecimentos as seguintes obrigações para com o sistema: 1. Manter as informações dos produtos atualizadas; 2. Manter os dados do estabelecimento atualizados; As obrigações do mantenedores, após concordar e estabelecer a parceria com um lojista, são: 1. Garantir o envolvimento do parceiro nas comparações; 2. Solicitar do parceiro a atualização das informações dos produtos; 3. Disponibilizar uma meio informatizado para o parceiro manter os dados atualizados, tanto dos produtos quanto dos estabelecimentos; 4. Disponibilizar a ferramenta de comparação para os usuários.
36 34 Capítulo 2. Execução Políticas da parceria As regras que deverão ser respeitadas, após o estabelecimento da parceria entre mantenedores e lojistas, são: A atualização das informações dos produtos deverá ocorrer no máximo a cada 7 (sete) dias. Se, após sete dias da última atualização, o parceiro não atualizar as informações dos produtos ele será excluído das buscas até que realize a atualização; O mantenedores não garantem que o preço apresentado pela ferramenta é o preço praticado pelo parceiro; As informações da loja que serão disponibilizadas para os usuários da ferramenta são: nome, logo, endereço, telefone(s), endereço, horário de funcionamento, site e . A viabilidade desta estratégia foi certificada de uma maneira bem simples. Foram contactados diretamente dois estabelecimentos comerciais e lhes foi apresentada de maneira informal a proposta deste trabalho, destacando seus benefícios, vide seção 1.4 e o sistema de parcerias descrito nesta seção. O resultado foi positivo para ambos, que demonstraram interesse no projeto. Assim estes serão os dois primeiros parceiros que irão compor a prova de conceito deste trabalho, onde irão contribuir para o desenvolvimento do protótipo funcional durante o trabalho de conclusão de curso Etapa C: Definir requisitos para a ferramenta de comparação Os requisitos para a criação da ferramenta de comparação de preços, tanto a versão Web quanto a versão mobile, foram definidos com base nas necessidades dos stakeholders, listados na Tabela 1. Segundo (RAJAGOPAL et al., 2005), deve ser escrito uma descrição das necessidades de cada stakeholder. Ainda segundo o autor, essa técnica, combinada com outras, ajuda a definir requisitos mais precisos, alinhados às necessidades dos interessados.
37 2.3. Etapa C: Definir requisitos para a ferramenta de comparação 35 Parceiro Fornecedor de informações para o comparador Mantenedor Desenvolvedores e mantenedores do comparador Tabela 1 Interessados no projeto (stakeholders). Stakeholder Descrição Responsabilidades Usuário Utilizador das informações do Informar o produto de interesse e selecionar comparador a oferta que julgar mais interessante Inserir as informações pertinentes aos produtos e ao estabelecimento e mantê-las atualizadas Desenvolver a ferramenta e disponibilizá-la para os stakeholders, de modo que o usuário consiga obter as informações desejadas e o parceiro consiga inserir e manter as informações Figura 5 Interação dos usuários e parceiros com o sistema. Fonte: Autores. Com a identificação dos interessados, foi possível levantar as principais necessidades de cada um deles. Esta visão se deu sob o ponto de vista dos mantenedores da aplicação a respeito do problema. As necessidades estão listadas na Tabela 2: Stakeholder Usuário Parceiro Mantenedor Necessidade 1. Saber o preço de determinado produto em vários estabelecimentos comerciais físicos 2. Saber em qual estabelecimento comercial físico certo produto possui o menor preço 3. Inserir informações sobre os produtos 4. Inserir informações sobre o estabelecimento 5. Implementar o comparador num prazo máximo de dois meses 6. Alcançar o máximo de parceiros e usuários possíveis Tabela 2 Necessidades dos interessados no projeto.
38 36 Capítulo 2. Execução Requisitos do Sistema Após a elucidação dos stakeholders e suas necessidades, foram derivadas as estórias de usuário que transpassam as funcionalidades do sistema. Tais estórias abarcam a versão do primeiro protótipo funcional a ser desenvolvido na segunda parte deste trabalho. Estórias de usuário descrevem os requisitos de um software de maneira narrativa, elas explicitam os passos a serem seguidos por um usuário de forma que este obtenha o comportamento desejado do sistema. Um dos aspectos mais relevantes de uma estória é que esta pode representar uma ampla variedade de requisitos (LAYMAN, 2006). Como é dito por (BECK, 1999), as estórias são escritas em uma sentença que responde as questões: quem, o que e por que? - e orientam os princípios e objetivos do negócio de forma que se materialize o software nos âmbitos de um sistema que seja testável e estimável. A estória de usuário deve ser escrita sem termos técnicos e deve ser possível explicá-la em trinta segundos, segundo (GALLARDO-VALENCIA; OLIVERA; SIM, 2007) US01 - Pesquisar preços de um produto Como um usuário Eu desejo pesquisar um produto Para que eu possa descobrir o preço deste produto em vários estabelecimentos US02 - Definir região de busca Como um usuário Eu desejo definir uma região de busca Para que eu possa buscar um produto em estabelecimentos de uma região específica US03 - Sugerir Correção de Produto Como usuário Eu desejo sugerir a correção de uma informação de um produto Para que o estabelecimento responsável corrija as informações US04 - Manter informações do estabelecimento parceiro Como parceiro Eu desejo manter informações do meu estabelecimento
39 2.4. Etapa D: Definir aspectos tecnológicos da solução proposta 37 Para que eu possa disponibilizar informações da minha loja no sistema US05 - Inserir dados de produtos Como parceiro Eu desejo inserir dados dos meus produtos Para que estes sejam disponíveis para busca dos usuários As estórias descritas acima delimitam o conjunto de funcionalidades que dará corpo ao software na sua versão mobile e web, tanto do ponto de vista da aplicação quanto do ponto de vista do servidor. E também, elas servem de guia para as decisões de arquitetura e tecnologias a serem utilizadas, as quais são abordadas na seção Etapa D: Definir aspectos tecnológicos da solução proposta Com a delimitação inicial do escopo, foram estudados aspectos tecnológicos para a construção de protótipos funcionais, mobile e Web, que atendam aos requisitos funcionais apresentados na seção A aplicação Web contemplará todas as funcionalidades levantadas, enquanto a aplicação mobile contemplará apenas as funcionalidades descritas nas estórias US01, US02 e US03, descritas nas seções , e respectivamente. Além destas das frentes mobile e Web será necessário um servidor para armazenar e disponibilizar os dados. A seguir, são descritos os aspectos que caracterizam os módulos chave do sistema comparador de preços Aplicação mobile O desenvolvimento mobile evoluiu muito nos últimos anos, existindo hoje no mercado várias plataformas diferentes, cada uma com características especialistas do ponto de vista de linguagem e API. Então, com o objetivo de desenvolver uma aplicação que atendesse as principais plataformas disponíveis, atingindo uma maior quantidade de usuários, optou-se pela utilização de um framework multiplataforma, capaz de gerar aplicações nativas para vários sistemas mobile, como Android e ios. Apenas quatro plataformas têm representatividade significativa no mercado de dispositivos móveis, são elas: Android, ios, Windows Phone e BlackBerry (ANDRADE et al., 2013). E também, segundo (BABU et al., 2012), o desenvolvimento de aplicação mobile multiplataforma é o meio mais rápido e eficiente de disponibilizar um aplicativo para todas as tecnologias mobile com um orçamento limitado. A habilidade de combinar aplicativos Web com código nativo pode reduzir significamente o tempo e custo de desenvolvimento, diminuindo o esforço para produzir código personalizado (LIONBRIDGE, 2012).
40 38 Capítulo 2. Execução Neste sentido, foi escolhido o framework multiplataforma Apache Cordova, que, segundo (BABU et al., 2012), permite aos programadores construir aplicações para dispositivos móveis utilizando JavaScript, HTML5 e CSS3 ao invés da linguagem nativa de cada plataforma, como Java para Android ou Objectiv-C para ios. Apache Cordova é um conjunto de APIs de dispositivos que permite ao desenvolvedor de aplicativos móveis acessar funções nativas do dispositivo, como acelerômetro ou câmera, a partir do JavaScript (THE APACHE SOFTWARE FOUNDATION, 2013). No entanto, para o desenvolvimento deste trabalho será utilizada e testada a aplicação somente na plataforma Android, pelo fato de ser a única plataforma disponível aos autores deste trabalho. Todavia o legado desta arquitetura multiplataforma se mantém para as almejadas evoluções da aplicação no futuro Aplicação Web Alguns frameworks foram pesquisados para guiar o desenvolvimento da aplicação Web e dentre eles, destacou-se o Node.js, um framework cliente-servidor que oferece a construção simples de um sistema robusto capaz de tratar uma grande massa de dados e requisições mantendo um alto grau de escalabilidade, englobando os requisitos de um sistema que deve ser construído para receber atualizações diárias dos preços dos produtos de vários estabelecimentos e também suportar uma grande quantidade de buscas. Node.js é uma plataforma construída sobre o motor JavaScript do Google Chrome para facilmente construir aplicações de rede rápidas e escaláveis. Ela usa um modelo de I/O direcionada a evento não bloqueante que o torna leve e eficiente, ideal para aplicações em tempo real com troca intensa de dados através de dispositivos distribuídos. (NODE.JS FOUNDATION, 2015) (LEI; MA; TAN, 2014) fez um estudo para comparação das tecnologias PHP, Python e Node para o desenvolvimento Web, comparando seu desempenho e concluiu que os servidores Node possuem uma maior vantagem no processamento das requisições. A aplicação Web será responsável por realizar as transações de Create, Retrieve, Update, Delete (CRUD) e também disponibilizará estas transações na forma de recursos a serem consumidos pela aplicação mobile. Para isso será utilizado o estilo Representational State Transfer (REST), um padrão arquitetural para a comunicação uniforme entre diferentes sistemas através de um modelo XML (LI; CHOU, 2011) Outros motivos que levaram a escolha desta tecnologia é o fato de ela ser escrita na mesma linguagem que será utilizada no desenvolvimento da aplicação Mobile que será escrita em JavaScript através do framework Cordova. Isso deixará a comunicação entre os dois sistemas mais natural, sem a necessidade de conversão de formatos, pois ambos utilizam a mesma notação JSON, fazendo com que o desenvolvimento das duas
41 2.4. Etapa D: Definir aspectos tecnológicos da solução proposta 39 plataformas se torne mais familiar para os desenvolvedores e mantenedores do sistema Banco de Dados Considerando a grande quantidade de informações sobre preços dos produtos em vários estabelecimentos, o banco de dados tem grande importância, pois exercerá papel preponderante no desempenho do sistema comparador de preços já que grande parte desses dados armazenados no banco de dados da aplicação serão consultados constantemente. Com o fator desempenho sendo uma questão de grande peso, foi decidido utilizar um sistema de banco de dados NoSQL. Segundo (NYATI; PAWAR; INGLE, 2013), o banco de dados NoSQL oferece todas as funcionalidades de um sistema distribuído, como escalabilidade, replicação, robustez e etc. Ainda segundo os autores, essas funcionalidades não são satisfeitas por bancos de dados estruturados (SQL). Banco de dados NoSQL são não relacionais e armazenam dados não estruturados. Ele não é uma substituição para o banco de dados SQL, é um complemento para ele. [...] A diferença chave é que bancos de dados relacionais (SQL) têm esquemas rígidos enquanto bancos de dados NoSQL oferecem esquemas flexíveis que podem ser alterados sem interrupção do serviço. 1 (BHOGAL; CHOKSI, 2015) Como citado anteriormente, as aplicações Web e mobile que farão uso dos dados armazenados no banco serão escritas em JavaScript, por esse motivo, buscou-se selecionar um sistema de banco de dados que armazenasse arquivos no formato JSON, mantendo um grau maior de proximidade entre os recursos utilizados para construção do comparador. Existem diversos bancos de dados NoSQL com as características desejadas, porém foram considerados os que têm maior representatividade: MongoDB, CouchDB e Couchbase. Os autores (LI; MANOHARAN, 2013) demonstram uma comparação de desempenho entre diversos sistemas de bancos de dados, executando as operações de leitura, escrita e deleção. Os resultados apontaram que os bancos com melhor desempenho foram o MongoDB e Couchbase. A Figura 6 mostra o resultado dos testes com a operação de leitura. 1 Tradução livre feita pelos autores.
42 40 Capítulo 2. Execução Figura 6 Tempo de leitura, em milissegundos, de cada banco de dados vs Quantidade de operações (LI; MANOHARAN, 2013). Se você quer usar um banco de dados rápido e flexível, você pode contar com o MongoDB. 2 (BOICEA; RADULESCU; AGAPIN, 2012). Após analisar os aspectos gerais dos sistemas de banco de dados de maior representatividade o MongoDB foi selecionado para ser o banco de dados da aplicação. Apesar do Couchbase possuir um melhor desempenho, essa escolha se deu pois os autores deste trabalho consideraram que a comunidade MongoDB é mais ativa e possuem disponíveis uma quantidade maior de materiais e fontes de estudo para este banco de dados. 2 Tradução livre feita pelos autores.