UNIVERSIDADE FEDERAL DE LAVRAS. BOTEJO - SISTEMA DE APOIO À MINERAÇÃO DE DADOS COM FOCO NO RAMO VAREGISTA (Análise e Projeto) EDSON LOPES BARBOSA



Documentos relacionados
Guia de utilização da notação BPMN

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Alexandre Lima Guilherme Melo Joeldson Costa Marcelo Guedes

Unidade II MODELAGEM DE PROCESSOS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

3 Qualidade de Software

DESENVOLVENDO O SISTEMA

Com metodologias de desenvolvimento

c. Técnica de Estrutura de Controle Teste do Caminho Básico

perspectivas e abordagens típicas de campos de investigação (Senra & Camargo, 2010).

3. Fase de Planejamento dos Ciclos de Construção do Software

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Géssica Talita. Márcia Verônica. Prof.: Edmilson

Uma introdução ao SCRUM. Evandro João Agnes

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Processos de Software

Projeto SIAC 2.0: Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)

Área de Desenvolvimento de Novos Projetos

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Gestão de impactos sociais nos empreendimentos Riscos e oportunidades. Por Sérgio Avelar, Fábio Risério, Viviane Freitas e Cristiano Machado

Resolução da lista de exercícios de casos de uso

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Gerenciamento da Integração (PMBoK 5ª ed.)

METODOLOGIAS ÁGEIS - SCRUM -

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

agility made possible

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

2 Engenharia de Software

Conectar diferentes pesquisas na internet por um menu

SISTEMA DE GESTÃO DE MANUTENÇÃO APLICADO NO IFRN CAMPUS MOSSORÓ

Introdução ao Processo Unificado (PU)

O Uso da Inteligência Competitiva e Seus Sete Subprocessos nas Empresas Familiares

Cartilha do ALUNO EMPREENDEDOR POLITÉCNICA

Gerenciamento de Projetos Modulo III Grupo de Processos

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

3.1 Definições Uma classe é a descrição de um tipo de objeto.

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

O Cisco IBSG prevê o surgimento de mercados globais conectados

3 Gerenciamento de Projetos

Aplicando Scrum no. Vítor E. Silva Souza

JORNADA DE COMPRA. O que é e sua importância para a estratégia de Marketing Digital VECTOR

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

Gerenciamento do ciclo de vida de um documento Simone de Abreu

3 Estratégia para o enriquecimento de informações

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 16 AS QUATRO FASES DO PCP

VIGDENGUE - SISTEMA DE APOIO AO ACOMPANHAMENTO E VIGILÂNCIA DE CASOS NOTIFICADOS DE DENGUE

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

O Processo Unificado

Processos de gerenciamento de projetos em um projeto

4.1. UML Diagramas de casos de uso

Engenharia de Software II

Novidades do Guia PMBOK 5ª edição

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

Engenharia de Requisitos Estudo de Caso

Porque estudar Gestão de Projetos?

SCRUM. Otimizando projetos. Adilson Taub Júnior tecproit.com.br

Banco de Dados Orientado a Objetos

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Versão Setembro/2013. Manual de Processos. Módulo Protocolo

Capítulo Laudon, Cap. 5

Modelagem de Dados UNIDADE DE REVISÃO E RECUPERAÇÃO

Unidade I Conceitos BásicosB. Conceitos BásicosB

Gerenciamento de Requisitos Gerenciamento de Requisitos

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

Sumário. Introdução ao Microsoft Project. 1 Microsoft Project, gerenciamento de projetos e você 3. 2 Visão geral do Project 11.

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

PMBoK Comentários das Provas TRE-PR 2009

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

2. Conceitos e Arquitetura de Bancos de Dados

TÉCNICAS DE PROGRAMAÇÃO

Olá, Somos Ideatera - Studio Tecnológico

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

Donare Sistema de Gerenciamento de Ações Humanitárias

Gestão da Tecnologia da Informação

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

Um passo inicial para aplicação do gerenciamento de projetos em pequenas empresas

UNIVERSIDADE PAULISTA CURSO SUPERIOR DE TECNOLOGIA. Projeto Integrado Multidisciplinar I e II

ITIL v3 - Operação de Serviço - Parte 1

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

Aumente o valor do ciclo de vida de cada cliente

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

TCC CURSO POS-GRADUAÇÃO ESPECIALIZAÇÃO DESIGN INSTRUCIONAL ROTEIRO DO PROJETO DE DESIGN INSTRUCIONAL DE UM CURSO

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

O Tema Progresso e o Princípio de Gerenciar por Estágios. Palavras Chave: Estágios de Gerenciamento. Progresso. Controle. Projetos. PRINCE2.

Transcrição:

UNIVERSIDADE FEDERAL DE LAVRAS BOTEJO - SISTEMA DE APOIO À MINERAÇÃO DE DADOS COM FOCO NO RAMO VAREGISTA (Análise e Projeto) EDSON LOPES BARBOSA LAVRAS MINAS GERAIS BRASIL 2010

EDSON LOPES BARBOSA BOTEJO - SISTEMA DE APOIO À MINERAÇÃO DE DADOS COM FOCO NO RAMO VAREGISTA (Análise e Projeto) Trabalho de Conclusão apresentado ao Departamento de Ciência da Computação da Universidade Federal de Lavras, como parte das exigências do Curso de Pós-Graduação Lato Senso em Engenharia de Software com Ênfase em Software Livre, para obtenção do título de especialização. Orientador Prof. Tales Heimfarth LAVRAS MINAS GERAIS BRASIL 2010

EDSON LOPES BARBOSA BOTEJO - SISTEMA DE APOIO À MINERAÇÃO DE DADOS COM FOCO NO RAMO VAREGISTA (Análise e Projeto) Trabalho de Conclusão apresentado ao Departamento de Ciência da Computação da Universidade Federal de Lavras, como parte das exigências do Curso de Pós-Graduação Lato Senso em Engenharia de Software com Ênfase em Software Livre, para obtenção do título de especialização. APROVADA em de de. Prof. Prof. Prof. Tales Heimfarth UFLA (Orientador) LAVRAS MINAS GERAIS BRASIL 2010

SUMÁRIO LISTA DE FIGURAS... 5 LISTA DE TABELAS... 6 1. INTRODUÇÃO... 8 2. PROCESSO DE DESENVOLVIMENTO...13 2.1 Metodologia Ágil... 15 2.2 Scrum Solo... 17 2.3 Ferramentas... 19 2.4 Licença de Uso... 21 3. VISÃO GERAL DO SOFTWARE... 22 3.1 Diagrama de Caso de Uso...29 3.2 Diagrama de Entidade Relacionamento... 31 3.3 Diagrama de Classe... 32 4. PROTÓTIPO... 33 5. CONCLUSÃO... 36 REFERÊNCIAS BIBLIOGRÁFICAS... 37 ANEXOS... 39

LISTA DE FIGURAS Figura 1 Número de usuários no mundo com acesso à Internet... 9 Figura 2 Processo de obtenção do conhecimento... 10 Figura 3 Fluxo de processo do Scrum... 19 Figura 4 Departamentos, primeiro nível de mapeamento... 23 Figura 5 Categorias, segundo nível de mapeamento... 23 Figura 6 Paginação, terceiro nível de mapeamento... 24 Figura 7 Produtos, quarto nível de mapeamento... 25 Figura 8 Primeira Atividade, processo de mapeamento de produtos... 26 Figura 9 Campos do produto onde o crawler irá recuperar... 27 Figura 10 Segunda Atividade, processo de extrair informações dos produtos....28 Figura 11 - Diagrama de Caso de Uso... 29 Figura 12 Diagrama de Entidade Relacionamento... 31 Figura 13 Diagrama de Classe... 33 Figura 14 Execução do sistema sem nenhuma entrada de parâmetros... 34 Figura 15 Processo de catalogação de produtos... 34 Figura 16 Processo de mapeamento de links... 35 Figura 17 Links catalogados no primeiro momento de mapeamento do site......35 Figura 18 Quantidade de produtos catalogados no segundo momento do mapeamento do site... 36

LISTA DE TABELAS Tabela 1 Ferramentas usadas neste projeto...20 Tabela 2 Primeira Atividade, níveis de mapeamento de um site...26 Tabela 3 Segunda Atividade, níveis de mapeamento de um site...28 Tabela 4 Descrição do Caso de Uso principal...30

BOTEJO - SISTEMA DE APOIO À MINERAÇÃO DE DADOS COM FOCO NO RAMO VAREGISTA (Análise e Projeto) Edson Lopes Barbosa Universidade Federal de Lavras (UFLA) Campus Histórico da UFLA, s/n 37.200-000 Lavras MG Brasil. edsonlb@gmail.com Abstract: This work presents an analysis and project for the development of a software that will meet the needs of data mining in the online retail sector, ie, collecting information on products of other companies and putting together on a solid database from real national retailer senary. Data are collected directly from the online retails stores, and then transported to a local open source database, and then can be used by companies interested in data mining. To accomplish this technique, the study was applied to an object-oriented analysis using UML (Unified Modeling Language) and the prototype was developed in Java language with the database engine on Firebird SQL, as well as the entire development was built on top of agile development called Scrum. Key-words: Free Software, Data Mining, Web, Crawler, Retail Resumo: Este trabalho apresenta a análise e projeto para o desenvolvimento de um software que venha atender as necessidades de mineração de dados online no ramo varejista, ou seja, coletando informações de produtos de outras empresas e montando uma base de dados sólida e real do cenário varejista nacional. Os dados são coletados diretamente das lojas virtuais das empresas e, então, transportados para uma base de dados local de código aberto para a utilização da mesma por parte das instituições interessadas em minerar os dados obtidos. Para realizar esta tarefa foi aplicada a técnica de análise orientada a objeto, utilizando a Unified Modeling Language (UML) e o protótipo desenvolvido em linguagem Java com a base de dados em Firebird SQL, assim como todo o desenvolvimento foi construído com base no modelo Ágil chamado Scrum. Palavras chaves: Software Livre, Mineração de Dados, Web, Crawler, Varejo

1. INTRODUÇÃO No mundo, as informações podem ser armazenadas das mais variadas maneiras, sendo que o modo mais clássico de armazenamento é através da palavra impressa. O acesso à informação estocada desta forma é lento, difícil e de pouco rendimento. Um exemplo muito comum é o uso de panfletos dos produtos encontrados nas grandes redes de varejos e, sendo assim, para todas as etapas da manipulação deste tipo de informação é necessária a presença do ser humano que com suas limitações na capacidade de aquisição de conhecimento e processamento de grande volume de informação, constitui o principal gargalo do processo como um todo Mandel [Mandel, Simon e DeLyra, 1997]. A modernização dos últimos anos tornou as tecnologias de informação uma realidade inerente às vidas de todos nós. Das grandes multinacionais as pequenas empresas, das instituições públicas as instituições de ensino e, claro, em nossa própria casa, termos como informática, computador, Internet e multimídia, entre tantos outros, passaram a fazer parte das tarefas do dia-a-dia, transformando-se em instrumentos fundamentais do trabalho de qualquer um. Todo este avanço tecnológico proporcionou meios muito mais eficientes para o armazenamento e disseminação de informação, esta, no formato digital, tornou-se condição necessária para o amplo uso dos computadores na sua real utilidade e potencialidade de processamento. Hoje, conforme Chakrabarti [Chakrabarti, 2003], a World Wide Web, ou simplesmente Web, já é o maior repositório de dados do mundo. O principal serviço oferecido pela Internet, a Web, passa por uma verdadeira explosão de conteúdo, pois deixou de ser utilizada por indivíduos comuns e passou também a ser palco das grandes empresas. Segundo dados estatísticos do Website [Wold Internet Usage Statistics, 2009], portal do órgão americano Internet Systems Consortium Inc. e responsável por pesquisas de registro de domínios intitulados The ISC Domain Survey, há, atualmente, mais de 1,802,330,457 pessoas com acesso à Internet no mundo, o que representa 26,6% da população mundial, e com crescimento de 399.3% se comparado ao ano de 2000. A Figura 1 ilustra o crescimento da Internet com o passar dos anos com base na quantidade de usuários conectados. 8

www.internetworldstats.com 2000 1802 1800 1574 Milhões de Usuários 1600 1400 1262 1200 1093 1018 1000 817 719 800 587 513 600 361 400 200 248 147 16 36 70 0 1994 1996 1998 2000 2002 2004 2006 Anos 2008 2010 Usuários Figura 1 Número de usuários no mundo com acesso à Internet. Porém, o massivo crescimento de dados disponíveis na Web traz consigo grandes desafios em termos de disponibilidade de informações realmente relevante. Sendo imprescindível para este estudo, será necessário estipular algumas distinções e definições iniciais. Embora usados muitas vezes como sinônimos, o termo dados e informação possuem significados distintos: Dados: um fenômeno qualquer, desprovido de significado e contexto [Laudon & Laudon, 2002]. Informação: resultado do processamento, manipulação e organização de dados que passam a ter significados e, portanto, podem ser contextualizados, interpretados e compreendidos [Goldschmidt & Passos, 2005]. Os dados então por toda parte. A maioria das organizações não sofrem de falta de dados, mas, sim, de uma abundância de dados redundantes e inconsistentes [Singh, 2001]. A informação desejada encontra-se entre os bits e bytes armazenados, por exemplo, em um disco rígido. Esses dados, após uma série de processamentos que envolvem, por exemplo, operações lógicas, serão transformados em informação. E, finalmente, quando essa informação é recuperada 9

e interpretada, chega-se ao conhecimento. É o que está resumindo no diagrama da Figura 2. Figura 2 Processo de obtenção do conhecimento. A Web é um ambiente em que reina a cultura liberal e informal de propagação de conteúdo. Toda essa atmosfera desprovida de regras e censura favoreceu a sua expansão vertiginosa de volume e diversidade de conteúdo, contudo, também é responsável pela grande redundância e inconsistência de dados presentes nesse ambiente. Atualmente, a volumosa quantidade de dados na Web, muitas vezes, torna difícil encontrar o produto desejado. Uma típica busca por informação na Web começa em uma mecanismo de busca. Para isso, é necessário selecionar algumas palavras relacionadas ao produto desejado e submetê-las ao sistema de buscas que retornará como resultado todos os Websites que contêm os termos do produto desejados. Embora muitas vezes o objetivo de encontrar o produto requisitado seja atendido, essa abordagem deixa muito a desejar: Consultas com termos amplos tendem a aumentar os resultados, como, por exemplo, o termo notebook toshiba A75 S229, este, por sua vez, no mecanismo do Google, retornou com mais de 36.000 resultados. Dificuldades em determinar o prestígio ou a confiabilidade da informação, no caso, o preço de um produto, pois os resultados obtidos surgem das mais variadas fontes, como por exemplo blogs, fóruns, lista de e-mails e outros repositórios diversos mapeados pelos motores de busca, ou seja, não são sites de comércio eletrônico. Por último, a existência de termos, muitas vezes, repletos de ambiguidade, 10

como por exemplo, a procura pelo produto Tênis, ou ele retornará páginas relativas ao jogo que se pratica com raquetes e bola ou, então, a sapatos desportivos. Conforme Gomes [Gomes, 2008], o assunto de ambiguidade é tratado sobre o enfoque de Mineração de Textos. Outro grande problema recorrente dessa abordagem, é a dificuldade encontrada pelos usuários em expressar a necessidade de informação por meio de palavras chaves. Conforme Spink [Spink, Wolfram, Jansen e Saracevic, 2001], aproximadamente cinquenta e dois por cento das intenções de busca de informação em motores de busca são reformuladas. Em média, o número de consultas por necessidade de informação é de 4,86. Deste total de consultas reformuladas, segundo o estudo de Spink [Spink, Wolfram, Jansen e Saracevic, 2001], aproximadamente um terço das consultas modificadas sofreram alterações nos termos submetidos, mas permaneceram inalteradas quanto ao número total de termos. Quanto ao restante, mais de quarenta por cento incluíram termos diferentes dos submetidos na primeira consulta e apenas vinte e cinco por cento excluíram termos utilizados na primeira consulta. Sendo a maior fonte de dados do mundo, todo usuário com necessidade de informação recorre a Web, por saber que a resposta necessária está lá. A grande dificuldade, porém, é saber onde e como obter informações relevantes sobre os produtos requeridos. Métodos de Recuperação de Informação sempre foram utilizados para o armazenamento de documentos e a recuperação automática de informação associada a eles [Baeza-Yates e Bertier, 1999] [Manning Raghavan e Schutze, 2007]. Antes desta explosão de informação, tarefas de recuperação de informação eram restritas a bibliotecas nas quais, com a ajuda de um bibliotecário, qualquer assunto poderia ser encontrado. Entretanto, com a enorme massa de dados disponíveis atualmente, a relevância das informações retornadas nem sempre atende as necessidades. Aliado a isso, surge o fato da possível existência de informações, até então, desconhecida, presente nestes dados. Em virtude do crescimento contínuo do volume de dados eletrônicos disponíveis, técnicas de extração de conhecimento automáticas tornam-se cada vez mais necessárias para manipular essa gigantesca massa de dados. A mineração de textos ou mineração de dados surge, nesse contexto, como uma abordagem a obtenção de informação de qualidade a partir de bases de dados em formato textual. 11

O principal objetivo das técnicas de mineração de textos é a manipulação de documentos em formato textual com o objetivo da obtenção do conhecimento implícito presente nestes [Aranha e Passos, 2006]. Assim, dentre as motivações para o desenvolvimento deste trabalho duas necessidades estão presentes: a de prover um mecanismo para a recuperação de informação na Web de forma diferente da abordagem que utiliza palavras-chaves e um conjunto de técnicas que seja capaz de extrair, analisar e interpretar todo o conhecimento implícito dessa imensa base de dados disponível pela Internet. O principal objetivo deste trabalho é pesquisar, propor, implementar e avaliar um método inteligente de recuperação de informação de produtos na Web dos principais representantes do varejo nacional, montando, assim, uma extensa base de dados, em tempo real, dos produtos negociados por essas empresas. Com os dados recuperados, qualquer programa externo poderá fazer uso dos dados coletados para a colaboração no processo de mineração de dados no mercado nacional. Para isso, é proposta uma metodologia de coleta de dados na Web, com auxílio de técnicas de Mineração de Textos que permite que a necessidade de informação do usuário seja expressa, não por palavras soltas, mas, sim, por dados relacionados a produtos. Além disso, esse processo de coleta inteligente é capaz de analisar as opções de rastreamento disponíveis (hyperlinks) e selecionar aquelas que, possivelmente, venham a apresentar conteúdo de maior relevância que, em nosso caso, são os produtos oferecidos pela loja, sendo ignoradas as opções de pouca ou nenhuma relevância. Sobre o nome do projeto, ou seja, BOTEJO, é a união das palavras BOT e Varejo. BOT é o diminutivo de robot. BOT geralmente é um utilitário concebido para simular ações humanas, em geral, numa taxa muito mais elevada do que seria possível para um editor humano sozinho realizar. E, no caso deste estudo, seria impossível haver uma catalogação de todos os produtos e dos vários sites do varejo em poucas horas. 12

2. PROCESSO DE DESENVOLVIMENTO O processo de desenvolvimento de software está intimamente ligado à gestão do conhecimento nas organizações, uma vez que por meio deste, pode-se mapear, organizar, tratar e disseminar adequadamente o conhecimento no ambiente empresarial. É de conhecimento geral que são processos interdependentes, isto é, necessitam um do outro para gerar resultados completos e que satisfaçam as necessidades de gestão em uma organização. Através de processos adequados de desenvolvimento de softwares, é possível proporcionar a melhoria na gestão do conhecimento, e esta, realimentar a melhoria nos processos, agregando valor a gestão do desenvolvimento. [Pressman, 2006] trata a engenharia de software como uma tecnologia em camadas. Toda iniciativa de engenharia de software deve ser apoiada por um compromisso com a qualidade. Acima da camada da qualidade, encontram-se os processos, os métodos, e as ferramentas. O processo de desenvolvimento é um conjunto de atividades e resultados associados que levam à produção de software. Ao longo da história da engenharia de software, foram concebidos vários modelos de processos de desenvolvimento de software e, devido às divergências, nenhum pode ser considerado como o mais correto ou infalível. Para Sommerville [Sommerville, 2003], todos compartilham de atividades fundamentais como: especificação de software, projeto, implementação de software, validação de software e evolução do software. [Paula Filho, 2002] define processo como um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, práticas e transformações, usado para atingir uma meta. Esta meta geralmente está associada a um ou mais resultados concretos finais que são os produtos da execução do processo. O Processo Unificado é um modelo de processo de software proposto por [Davenport, 1998] que, por sua vez, utiliza a Unified Modeling Language (UML) como notação de uma série de modelos que compõem os principais resultados das atividades do processo. O Processo é composto de quatro fases: 13

Concepção: Fase na qual se justifica a execução de um projeto de desenvolvimento de software, do ponto de vista do negócio do cliente. Elaboração: Fase na qual o produto é detalhado o suficiente para permitir um planejamento apurado da fase de construção. Construção: Fase na qual é produzida uma versão completamente operacional do produto. Transição: Fase na qual o produto é colocado à disposição de uma comunidade de usuários. O ciclo de vida de um produto tem um modelo em espiral, em que cada projeto constitui um ciclo que entrega uma liberação do produto. O Processo Unificado não trata do que acontece entre os ciclos. Uma característica importante do Processo Unificado é que as atividades técnicas são divididas em subprocessos chamados de fluxos de trabalho, ou seja, workflows, que tem um tema técnico específico, enquanto as fases constituem divisões gerenciais, caracterizadas por atingirem metas bem definidas. Os fluxos de trabalho definidos no processo unificado são: Requisitos: Fluxo que visa obter um conjunto de requisitos de um produto, acordado entre cliente e fornecedor. Análise: Fluxo cujo objetivo é detalhar, estruturar e validar os requisitos, de forma que estes possam ser usados como base para o planejamento detalhado. Desenho: Fluxo cujo objetivo é formular um modelo estrutural do produto que sirva de base para a implementação. Implementação: Fluxo cujo objetivo é realizar o desenho em termos de componentes de código. Testes: Fluxo cujo objetivo é verificar os resultados da implementação. O processo unificado compartilha suas fases e fluxos com outros processos, entre eles, o Scrum. Segundo Kniberg [Kniberg,2007], a função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em 14

qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica ou, até mesmo, o planejamento de um casamento. Mesmo que idealizado para ser utilizado em gestão de fluxos de projetos de desenvolvimento de software, ele também pode ser usado para a gerência de equipes de manutenção ou como uma abordagem para gestão de desenvolvimento de programas, sendo este o foco do presente estudo. 2.1 METODOLOGIA ÁGIL As metodologias ágeis para desenvolvimento de software são uma resposta às chamadas metodologias pesadas ou tradicionais. Mesmo com a evolução dos computadores, das técnicas e das ferramentas nos últimos anos, a produção de software confiável, correto, entregue dentro dos prazos e dos custos estipulados, ainda é muito difícil. Conforme a pesquisa intitulada de Chaos Report da Standish [Standish Group, 1995], usando como base 8380 projetos, mostram que apenas 16,2% dos projetos foram entregues respeitando os prazos e os custos e com todas as funcionalidades especificadas. Aproximadamente 31% dos projetos foram cancelados antes de estarem completos e 52,7% foram entregues, porém, com prazos maiores, custos maiores ou com menos funcionalidades do que especificado no início do projeto. Dentre os projetos que não foram finalizados de acordo com os prazos e custos especificados, a média de atrasos foi de 222%, e a média de custo foi de 189% a mais do que o previsto. Considerando todos os projetos que foram entregues além do prazo e com custo maior, na média, apenas 61% das funcionalidades originais foram incluídas. Mesmo os projetos cuja entrega é feita respeitando os limites de prazo e custo possuem qualidade suspeita, uma vez que provavelmente foram feitos com muita pressão sobre os desenvolvedores, o que pode quadruplicar o número de erros de software, segundo a mesma pesquisa. As principais razões destas falhas estavam relacionadas com o processo em Cascata. A recomendação final foi que o 15

desenvolvimento de software deveria ser baseado em modelos incrementais, o que poderia evitar muitas das falhas reportadas. Processos orientados à documentação para o desenvolvimento de software, como o modelo em Cascata, são, de certa forma, fatores limitadores aos desenvolvedores. Além disso, muitas organizações não possuem recursos ou inclinação para processos pesados de produção de software. Por esta razão, muitas organizações, particularmente as pequenas, acabam por não usar nenhum processo, o que pode levar a efeitos desastrosos em termos de qualidade de software. Torna-se necessário, então, a utilização de metodologias ágeis, que não são orientadas por documentação, nem, tampouco, se preocupam apenas com a codificação. Conforme Cockburn [Cockburn, 2001], a maioria das metodologias ágeis nada possuem de novo. O que as diferencia das metodologias tradicionais são o enfoque e os valores. A ideia das metodologias ágeis é o enfoque nas pessoas e não em processos ou algoritmos. Além disso, existe a preocupação de gastar menos tempo com documentação e mais com a implementação. Uma característica das metodologias ágeis é que elas são adaptativas ao invés de serem preditivas. Com isso, elas se adaptam a novos fatores decorrentes do desenvolvimento do projeto, ao invés de procurar analisar previamente tudo o que pode acontecer no decorrer do desenvolvimento. Apesar do uso crescente das metodologias ágeis, ainda falta uma base maior de projetos para verificar suas vantagens. Mesmo assim, os resultados iniciais em termos de qualidade, confiança, datas de entrega e custo são promissores. Para ser realmente considerada ágil, a metodologia deve aceitar a mudança ao invés de tentar prever o futuro. O problema não é a mudança em si, mesmo porque ela ocorrerá de qualquer forma. O problema é como receber, avaliar e responder às mudanças. Enquanto as metodologias ágeis variam em termos de práticas e ênfases, elas compartilham algumas características como, desenvolvimento iterativo, modelo incremental, comunicação e redução de produtos intermediários, como documentação extensiva. Dessa forma, existem maiores possibilidades de atenderem os requisitos do cliente que, muitas vezes, são mutáveis. Dentre as várias metodologias ágeis existentes, as mais conhecidas são a Extreme Programming e a Scrum [Kniberg, 2007]. 16

2.2 SCRUM SOLO O Scrum é um framework para Gerenciamento de Projetos para desenvolvimento ágil. Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de projetos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo "The New Product Development Game" [Harvard Business Review, 1986]. Eles notaram que projetos usando equipes pequenas e multidisciplinares e/ou cross-functional, produziram os melhores resultados, e associaram essas equipes altamente eficazes para a formação Scrum do Rugby. Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka. Em 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo no desenvolvimento de softwares em todo o mundo. De acordo com [Schwaber, 2001], algumas Características do Scrum são: Clientes se tornam parte da equipe de desenvolvimento (os clientes devem estar genuinamente interessados na saída); Entregas frequentes e intermediárias de funcionalidades 100% desenvolvidas; Planos frequentes de mitigação de riscos desenvolvidos pela equipe; - Discussões diárias de status com a equipe; - A discussão diária na qual cada membro da equipe responde às seguintes perguntas: - O que fiz desde ontem? - O que estou planejando fazer até amanhã? - Existe algo me impedindo de atingir minha meta? Transparência no planejamento e desenvolvimento; Reuniões frequentes com os stakeholders (todos os envolvidos no processo) para monitorar o progresso; Retrospectiva, na qual todos os membros da equipe refletem sobre a sprint passada. 17

Problemas não são ignorados e ninguém é penalizado por reconhecer ou descrever qualquer problema não visto; Locais e horas de trabalho devem ser energizadas, no sentido de que "trabalhar horas extras" não necessariamente significa "produzir mais". Sprint é uma interação que segue um ciclo e entrega incremento de software pronto e testado. Backlog é conjunto de requisitos, priorizado pelo Product Owner (responsável pelo ROI e por conhecer as necessidades do cliente); O Scrum é facilitado por um Scrum Master, ou seja, o pseudo gerente, que por sua vez tem como função primária remover qualquer impedimento à habilidade de uma equipe de entregar o objetivo do sprint. O Scrum Master não é o líder da equipe (já que as equipes são auto-organizadas), mas atua como um mediador entre a equipe e qualquer influência desestabilizadora. Outra função extremamente importante de um Scrum Master é o de assegurar que a equipe esteja utilizando corretamente as práticas de Scrum, motivando-os e mantendo-se o foco na meta da Sprint. Scrum permite a criação de equipes auto-organizadas, encorajando a comunicação verbal entre todos os membros da equipe e entre todas as disciplinas que estão envolvidas no projeto. Um princípio chave do Scrum é o reconhecimento de que desafios fundamentalmente empíricos não podem ser resolvidos com sucesso utilizando uma abordagem tradicional de controle. Assim, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando mais na maximização da habilidade da equipe de responder de forma ágil aos novos desafios que são encontrados. Seguindo a abordagem de [Schwaber, 2001], uma das grandes vantagens do Scrum, é que não tem abordagem tipo "receita de bolo" do gerenciamento de projetos, exemplificado no Project Management Body of Knowledge [Pmbok Guide, 2008], que tem como objetivos atingir qualidade através da aplicação de uma série de processos prescritos. Para elucidar as características acima citadas, vide a Figura 3. 18

Figura 3 Fluxo de processo do Scrum. Como já vimos, Scrum é baseado em pequenas e médias equipes, esta metodologia preza pela comunicação entre os membros de toda a equipe, entretanto, há uma grande quantidade de softwares desenvolvidos por programadores solos. Um software sendo desenvolvido por um só programador pode ainda se beneficiar de vários princípios do Scrum, como: backlog de produto, backlog de sprint, sprints e ainda retrospectivas de sprints. Scrum Solo é uma versão adaptada para uso de programadores solo, e que foi adotado por este projeto. 2.3 FERRAMENTAS O sistema BOTEJO tem o seu formato de desenvolvimento de modo a operar como um ambiente desktop e por linha de comando. A linguagem escolhida para o desenvolvimento deste ambiente é o Java SE na versão 6 Update 20. Dentre os principais motivos, senão o principal, por sua escolha é o fato de ser independente de plataforma, ter alto desempenho, ser seguro, multithreading, 19

além de ter ótima documentação disponível ao usuário desenvolvedor. A persistência de dados consiste no armazenamento confiável e coerente das informações em um sistema de armazenamento de dados. E no que diz respeito ao armazenamento de dados, o sistema gerenciador de banco de dados fica a cargo do Firebird SQL na versão 2.1.3.18185. O Firebird tem a função de ser um sistema gerenciador de banco de dados, SGBD, que utiliza como interface a linguagem Structured Query Language (SQL) ou Linguagem de Consulta Estruturada. Firebird SQL, além de ser multiplataforma, é um SGBD leve e com alto poder de recuperação após falhas críticas e ainda possui ferramentas de administração em modo gráfico, além de ser um aplicativo Open Source. O Firebird foi definido na utilização deste projeto por de fácil instalação, administração e manutenção e por possuir uma vasta documentação e suporte em português provida pela Comunidade Firebird de Língua Portuguesa (CFLP). Dentre as ferramentas de apoio ao desenvolvimento do projeto vide a Tabela 1. TABELA DE FERRAMENTAS Ferramenta: Visual Paradigm NetBeans Plugin CE 5.2 Descrição: plugin para geração de modelagens em UML. Site: http://www.visual-paradigm.com/product/sde/nb/editions/community.jsp Ferramenta: NetBeans 6.3 Descrição: ambiente integrado de desenvolvimento (IDE) para a programação em Java. Site: http://netbeans.org/ Ferramenta: BrOffice.org 3.2.0 Descrição: suíte de escritório compatível com o Microsoft Office. Site: http://www.broffice.org Ferramenta: Google Code Descrição: hospedagem de projetos open source rápido, confiável e fácil. Site: http://code.google.com/intl/pt-br/projecthosting/ Ferramenta: MySQL Workbench 5.2.21 Descrição: ferramenta para design de banco de dados MySQL, que com algum as 20

modificações, também pode ser usada para outros tipos de bases de dados, como no nosso caso, o Firebird SQL. Site: http://wb.mysql.com/ Ferramenta: IBOConsole 1.1.12.16 Descrição: administração de base de dados Firebird SQL de código aberto Site: http://www.mengoni.it/downloads/ Ferramenta: HyperSQL 1.8.1.2 Descrição: sistema gestor de bases de dados livre, escrito integralmente em linguagem Java e embarcado na aplicação, mais conhecido como HSQLDB. Site: http://hsqldb.org/ Ferramenta: SGBD FirebirdSQL 2.1.3.18185 Descrição: sistema Gerenciador de Banco de Dados. Site: http://www.firebirdsql.org/ Tabela 1 Ferramentas usadas neste projeto. 2.4 LICENÇA DE USO Com o conceito de copyleft já formado, em 1989, foi criada pela Free Software Foundation (FSF), a primeira licença de Software Livre, no qual recebeu o nome de GNU - General Public License (GPL). Essa é a licença de software mais utilizada em projetos que envolvem Software Livre [ALVES 2005]. A GPL garante aos receptores das cópias de Software Livre a liberdade de executar o programa; a liberdade de estudar seu funcionamento, podendo a qualquer momento modificá-lo para atender as suas próprias necessidades ou de terceiros; a liberdade de distribuir livremente cópias relacionadas ao programa original e por fim a liberdade de distribuir cópias das versões que por ventura sejam modificadas, com objetivo de atender à comunidade para que a mesma possa usufruir das melhorias introduzidas em determinado software. O projeto BOTEJO possui licença GPL, para que se possa garantir a 21

liberdade do software livre e que possa a vir a ser modificado e/ou usado por empresas na medida de suas necessidades. 3 VISÃO GERAL DO SOFTWARE Para melhor compreensão de todas as funções do sistema, este capítulo irá descrever a interface de funcionamento da ferramenta. Primeiramente, por motivos de desempenho, o aplicativo possui dois estágios principais: um para a recuperação dos links dos produtos e um segundo para a coleta de dados de forma definitiva dos produtos. Para a recuperação dos links, o estudo concluiu que em qualquer site de comércio eletrônico é possível ter apenas quatro níveis de navegação: departamentos, categorias, produtos e paginações. Na Figura 3 podemos notar que o portal do Magazine Luíza possui em sua parte superior os departamentos onde ela opera, exemplo Informática, Eletrodomésticos, Móveis e etc. Esses departamentos são mapeados inicialmente pelo crawler e, a partir desse primeiro nível, o aplicativo toma forma e recupera as informações relevantes. Nesse exemplo, demostra-se o mapeamento somente de um dos portais, pois este estudo já distribui junto com a primeira versão uma série de redes de varejo, essas são: Magazine Luíza, Casas Bahia, Walmart, Lojas Americanas e Submarino. Caso o cliente desejar adicionar mais portais, ele poderá efetuar essa adição facilmente criando um objeto Java com os valores do site a ser mapeado em forma de parâmetros. 22

Figura 4 Departamentos, primeiro nível de mapeamento. Depois de identificado os departamentos que o site trabalha, o crawler busca pelo segundo nível (Figura 5) que são as categorias de produtos dentro de cada departamento identificado. Essas categorias contém informações fragmentadas referente à classificação, são exemplos Memória até 2GB, Memória 3GB, HD de até 160GB entre outros. Essas categorias são muito importantes, pois mesmo que a categoria informe produtos repetidos, ela, de forma geral, já separa os produtos de forma modular, facilitando ao crawler o mapeamento completo do portal. Figura 5 Categorias, segundo nível de mapeamento. 23

Já no terceiro nível, diz respeito à paginações dessas categorias (Figura 6). Essas paginações causam bastante transtorno, pois, ao se movimentar pelo site, o crawler deve saber qual seria a paginação usada pelo site para não ficar se movimentando à toa pelo portal e, assim, consumir banda extra sem necessidade. Mapeadas as paginações, ele ganha um caminho regular para assim que entrar em uma categoria, ir navegando pelas páginas da sequencia, e assim, recuperando o todos os produto da página. Figura 6 Paginação, terceiro nível de mapeamento. Uma vez descobertas todas as páginas que possuem caminhos válidos, ou seja, links para os produtos da loja, o crawler sai em busca de catalogar todos os produtos sem que esses sejam repetidos para, então, armazenar a sua colheita em uma base de dados relacional local (Figura 7). Neste momento, essa primeira fase está concluída, pois o objetivo do aplicativo é separar quais são os links relevantes ao propósito do sistema - que é recuperar os produtos em tempo real dos sites de varejo. 24

Figura 7 Produtos, quarto nível de mapeamento. Podemos concluir que, uma vez configurado com o site ao qual deseja mapear, o crawler faz o processo de coleta de dados automaticamente. Todavia, para que esta tarefa seja realizada de forma satisfatória, a banda de Internet ao qual o sistema estará operando deverá ser relativamente alta, pois nesta fase de coleta de links dos produtos o sistema consome muita da carga do link contratado para a navegação, já que o crawler caminhando pelo site representaria uma pessoa, ou várias, usando a Internet para entrar e sair rapidamente das páginas aumentando, assim, o tráfego na rede. Não colocaremos informações quanto ao tempo e desempenho do processo, justamente por que esta ação depende dos recursos da máquina e de infraestrutura de rede para operar, o que ocasiona uma grande imprecisão quanto à extração de estatísticas de desempenho da ferramenta. Podemos só afirmar que quanto maior for a banda de Internet e mais forte for o processamento da máquina, mais rápido será o processo de extração de dados, uma vez que o programa trabalha com a arquitetura Multithreading, ou seja, execução múltiplas de tarefas realizadas no processador aumentando, assim, o desempenho da atividade. Na Figura 8, pode-se observar o fluxo da primeira atividade do projeto e na Tabela 2 é possível acompanhar, com base nos números informativos, o que deverá ser fornecido pelo usuário do sistema para que o crawler se movimente pelo site de comércio eletrônico. Note que, na Figura 8, também mostrado a linha de comando 25

para se mapear (parâmetro m) o site Magazine Luíza. Figura 8 Primeira Atividade, processo de mapeamento de produtos. Númeração Observações e Palavras-chaves 1 buscar links de Departamentos: Ex: linha=cp 2 buscar links de Categorias: Ex: /Linha_Setores/ 3 Buscar links de Paginações e seus Produtos: Ex: /produto/ 4 Buscar links de Produtos e suas Paginações: Ex: pag= 5 Quardar os links recolhidos na base de dados local. OBS: Lembramos que as numerações 3 e 4 são feitas as coletas de dados dos produtos juntamente com a passagem do crawler pelas paginações, ou seja, há uma troca constante de dados entre essas duas numerações. COMANDO: java -jar botejo.jar magazineluiza m Tabela 2 Primeira Atividade, níveis de mapeamento de um site. Para descrever o segundo estágio do processo de mapeamento dos produtos, o aplicativo capita os links dos produtos já armazenados localmente, e apenas navega nos endereços e recolhe os campos requisitados como Descrição do 26

Produto e Preço. Essa tarefa onera menos a rede se comparado ao primeiro estágio, visto que onde o crawler é obrigado a navegar já é o material da primeira seleção. Na Figura 9, é demostrada a forma visual onde os campos, que deverão ser capitados, estão localizados. Figura 9 Campos do produto onde o crawler irá recuperar. Uma vez disparado o crawler para buscar os produtos, ele, assim que mapeado o produto, marca com um ponteiro o registro na base local para sinalizar que o produto em questão foi mapeado e não deverá ser catalogado novamente. Com as informações coletadas, o aplicativo transforma dados estáticos da Web em informações selecionáveis através de uma base de dados que, em nosso caso, será o banco relacional Firebird SQL. As informações contidas na base poderá ser acessada por qualquer outro tipo de sistema, bastando efetuar a conexão com a banco e realizar a consulta via SQL conforme a Figura 10 e as duas respectivas descrições na Tabela 3. 27

Figura 10 Segunda Atividade, processo de extrair informações dos produtos. Númeração Observações e Palavras-chaves 1 Recupera os links de produtos recolhidos na base de dados local. 2 buscar posição do texto: Ex: <h1 title= 3 Extrai os dados relevantes e cataloga a ação. 4 Mantém os dados em uma base SQL prontos para o processo de mineração de dados e consulta posterior. 5 O usuário transforma dados em informações. OBS: Lembramos que as numerações 4 e 5 são realizadas com o sistema que os usuários possuem, e que por sua vez, fazem conexão com a base de dados elaborada pela ferramenta do estudo. COMANDO: java -jar botejo.jar magazineluiza p Tabela 3 Segunda Atividade, níveis de mapeamento de um site. No sistema em questão, logicamente não é necessária a execução de dois comandos para que seja efetuada a operação de coleta de dados para o processo de mineração posteriormente. Esse processo é automatizado pelo parâmetro total ( t ) no final da linha de comando. Dessa forma, o aplicativo mapeia os produtos do site e, assim que termina, coleta os dados automaticamente. 28

3.1 Diagrama de Caso de Uso O Diagrama de Caso de Uso descreve a funcionalidade comportamental proposta para um novo sistema. É comum afirmar que um Caso de Uso é um documento narrativo que descreve a sequência de eventos de um ator que usa um sistema para completar um processo. Conforme a Figura 11, é possível constatar que neste estudo existe somente um ator e que pode realizar todas as funções do sistema com base nos parâmetros passados por linha de comando. Figura 11 - Diagrama de Caso de Uso. 29

TIPO DESCRIÇÃO Sumário Extrair os produtos de um website. Ator Operador. Pré-condição 01 O ator deverá instalar a máquina virtual Java 6 ou superior e possuir uma conexão ativa com a internet maior que 200KB. Fluxo Principal 1.0 O ator inicia o caso de uso abrindo o terminal de comandos de seu sistema operacional e informa os parâmetros iniciais para a operação do sistema (site + ação = casasbahia T). 2.0 O sistema informa os parâmetros recebidos, e inicia a ação de mapear os links dos produtos e recuperar as informações dos produtos mapeados. 3.0 O sistema cataloga todos os produtos do portal e encerra a operação liberando o terminal para novas ações.. 5.0 O caso de uso termina. Fluxo Alternativo 1.1 O ator informa a ação M. 1.2 O sistema informa os parâmetros recebidos, e inicia a ação de mapear os links dos produtos somente. Fluxo Alternativo 1.1 O ator informa a acao P. 1.2 O sistema informa os parâmetros recebidos, e inicia a ação de recuperar as informações dos produtos mapeados somente. Fluxo Alternativo 1.1 O ator não informa uma ação. 1.2 O sistema informa os parâmetros recebidos, e inicia a ação de mapear os links dos produtos e recuperar as informações dos produtos mapeados. Fluxo Exceção Pós-condição 1.1 O ator não informa o website. 1.2 O sistema mostra a Ajuda/Help do sistema. 1.3 O caso de uso termina. Ter recuperado todos os produtos de um site em uma base de dados baseado em SQL para facilitar a consulta de outros sistemas aos produtos do site mapeado. Tabela 4 Descrição do Caso de Uso principal 30

3.2 Diagrama de Entidade Relacionamento Através do Diagrama de Entidade Relacionamento, poderemos representar, de forma sucinta e bem estruturada, todos os elementos essenciais abstraídos no processo de análise de sistemas. Denominamos entidade (retângulo) estes elementos. Atribuímos a cada entidade definida atributos pertinentes ao sistema. Dessa forma, podemos definir conceitualmente que representaremos como entidades aqueles elementos no qual gostaríamos de armazenar dados que, por sua vez, são representados pelos atributos. Figura 12 Diagrama de Entidade Relacionamento. Como o foco da aplicação não é trabalhar com os dados em si, e sim na obtenção desses mesmos dados nos documentos da Web, o diagrama se mostra muito simplificado, já que serve somente como persistência. A tabela links fica responsável por persistir os dados da primeira atividade, ou seja, de coletar os links dos produtos dos demais links encontrados nos portais e, sendo assim, a tabela produtos é onde contém as informações já extraídas dos 31

produtos online para então servir de tabela base para a mineração de dados. No Anexo 1 são encontrados as instruções Data Definition Language (DDL) da base de dados. A DDL, ou linguagem de definição de dados, é a parte do SQL usada para definir dados e objetos de um banco de dados. Quando esses comandos são usados, são feitas entradas no dicionário de dados do sistema gerenciador de banco de dados, que em nosso caso é o FirebirdSQL. Dentro dessa definição, podemos citar os comandos mostrados a seguir para definir a criação das tabelas listadas no Diagrama de Entidade Relacionamento. 3.3 DIAGRAMA DE CLASSE Um diagrama de classes (Figura 13) é uma representação da estrutura e das relações das classes que servem de modelo para objetos manipulados pelo sistema. É uma modelagem muito útil, pois demonstra, de forma visual, qual será a interação entre os objetos do sistema. 32

Figura 13 Diagrama de Classe 4 PROTÓTIPO Visando dar uma melhor ênfase no entendimento deste projeto, segue abaixo o modelo em execução do protótipo, ou seja, algumas telas do software que foram desenvolvidas com base nos artefatos já citados anteriormente. Essas telas foram elaboradas para sistemas em linha de comando, ou seja, são feitas para serem fáceis de se entender e de manipular. A tela abaixo (Figura 14) está demostrando o processo de mapeamento sem a entrada de nenhum parâmetro. 33

Figura 14 Execução do sistema sem nenhuma entrada de parâmetros. Se caso for informado algum parâmetro válido, conforme mostra as orientações da Figura 14, o sistema irá mostrar as informações da escolha e logo em seguida irá efetuar a ação desejada. Repare que na ação de cadastrar produtos, com base na Figura 15, o aplicativo mostra se o produto mapeado possui itens em estoque ou não. Se caso positivo, ele será catalogado, caso negativo, ele será ignorado e marcado como indisponível para então ser mapeado posteriormente em outro momento mais oportuno. Figura 15 Processo de catalogação de produtos. 34

Na próxima tela (Figura 16), o sistema está efetuando o mapeamento dos links e informando todo o processo do crawler de caminhar pelos dados encontrados no site informado. Se caso ocorrer algum erro, o sistema não para a sua execução, mas marca o produto problemático para uma processamento futuro, e continua a peneirar os dados coletados do site. Figura 16 Processo de mapeamento de links. Como o sistema trabalha com threads, todo o processo é contínuo, suave e sem travamento total do programa. Quanto aos dados coletados, na Figura 17, é possível verificar a grande quantidade de links catalogados e os seus respectivos status. Figura 17 Links catalogados no primeiro momento de mapeamento do site. 35

Já sobre os produtos (Figura 18), é possível, com qualquer ferramenta de administração de dados para o Firebird SQL, manipular e minerar os dados coletados em tempo real na Internet. Figura 18 Quantidade de produtos catalogados no segundo momento do mapeamento do site. 5 CONCLUSÃO Foi introduzida neste trabalho de conclusão de curso uma abordagem para um problema recorrente hoje: obtenção de informação relevante no ambiente da Web. Apoiada na mineração automatizada, a metodologia proposta dispensa a necessidade de configurações extensas e conjuntos de dados para treinamento da ferramenta de coleta e análise de dados textuais. Os resultados obtidos por esta metodologia de coleta de dados mostram que a utilização de um pré modelo como objetivo do processo de coleta de dados é uma abordagem interessante e que deve ser ainda mais investigada como meio de obtenção de informações relevantes quanto a produtos e às fontes confiáveis de garimpar preços na Internet. Os benefícios adquiridos pela abordagem de textos como textos, e não como dados puramente estatísticos, mostram a centralidade da linguagem no processo de Mineração de Textos. Novas técnicas de Processamento de Linguagem Natural tendem a incrementar os resultados satisfatórios neste campo. As sugestões, para futuros trabalhos, envolvem as diversas tarefas de mineração de dados e de textos na Web e que podem ser empregadas no contexto 36

do problema que é abordado por este estudo. Entretanto, podemos relatar, ainda, a necessidade de elaborar uma interface mais amigável da que foi usada neste primeiro estudo. Uma interface gráfica de usuário, assim como uma ferramenta de configuração automática de classes de objetos Java para a criação de mapeamentos de novas empresas do varejo, seriam tarefas interessantes a serem desenvolvidas. REFERÊNCIAS BIBLIOGRÁFICAS ARANHA, C. N. Uma abordagem de pré-processamento automático para mineração de textos em português: sub o enfoque da inteligência computacional. 2007. Tese de Doutorado, Departamento de Engenharia Elétrica, PUC-Rio. ARANHA, C. N., e PASSOS, E. P. A tecnologia de mineração de Textos. 2006, Revista Eletrônica de Sistemas de Informação, 2,2. BAEZA-YATES, R. um novo retrato da Web brasileira. 2005. Proceedings os XXXII SEMICH. São Paulo. COCKBURN, A. Manifesto para Desenvolvimento Ágil, 2001, Disponível em: <http://agilemanifesto.org/iso/ptbr/>. Acesso em 15 maio. 2010. CHAKRABARTI, S. Mining the web: Discovering knowledge from hypertext data. 2003, San Francisco, CA: Morgan Kaufmann Publishers. DAVENPORT, T. H. Putting the enterprise into the enterprise system. 1998. Harvard Business Review. GOMES, R. M. Mineração de Textos na Desambiguação Dissertação de Mestrado. 2008. Rio de Janeiro: Dep. Engenhria Elétrica, PUC-Rio. GOLDSCHMIDT, R., E PASSOS, E. Data Mining: um guia prático. 2005. Rio de Janeiro: Campus. GROUP, THE STANDISH. Chaos Report. 1995. Disponível em: <http://www.projectsmart.co.uk/docs/chaos-report.pdf> Acesso em 2 maio 2010. KNIBERG, H. Scrum e XP direto das Trincheiras, 2007. C4Media, Publicher of InfoQ.com. Disponível em: <http://www.infoq.com/resource/minibooks/scrum-xp- from-the-trenches/pt/pdf/scrumexpdiretodastrincheiras.pdf>. Acesso em 1 maio. 37

2010. LAUDON, K. C., E LAUDON, J. P. Management Information Systems: managing the digital firm (7ed.). 2002. New Jersey: Prentive-Hal. MANDEL, A., SIMON, I., E DELYRA, J. Informação: computação e comunicação. 1997. Revista da USP. MANNING, C. D., RAGHAVAN, P., E SCHUTZE, H. Introduction to Information Retrieval. 2007. Cambridge University Press. PAULA FILHO, W. DE PÁDUA. Engenharia de Software: Fundamentos, Métodos e Padrões. 2002. LTC Livros Técnicos e Científicos S.A. Florianópolis. PRESSMAN, R. Engenharia de Software (5ed) 2006, Makron Books do Brasil, São Paulo. SINGH, H. S. DATA WAREHOUSE: Conceitos, tecnologias, implementação e gerenciamento. 2001. São Paulo: Makron Books. STATISTICS, WORLD INTERNET USAGE. The ISC Domain Survey. 2009. Disponível em: <http://www.internetworldstats.com/> e <http://www.isc.org/solutions/survey> Acesso em 4 maio 2010. SOMMERVILLE, I. Engenharia de Software (6ed). 2003. Person Addicon Wesley. São Paulo. SPINK, A., WOLFRAM, D., JANSEN, M. B., E SARACEVIC, T. Searching the web: the public and their queries. 2001. Journal of the American Society for Information Science and Technology. Vol. 52. TAKEUCHI, H.ENONAKA I. The New Product Development Game, 1986, Disponível em: <http://www.sao.corvallis.or.us/drupal/files/the%20new%20new %20Product%20Development%20Game.pdf> Acesso em: 4 março 2010. 38

ANEXO 1 SET SQL DIALECT 3; SET NAMES ISO8859_1; CREATE GENERATOR GEN_LINKS_ID; SET GENERATOR GEN_LINKS_ID TO 0; CREATE GENERATOR GEN_PRODUTOS_ID; SET GENERATOR GEN_PRODUTOS_ID TO 0; CREATE PROCEDURE SP_GEN_LINKS_ID RETURNS ( ID INTEGER) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_GEN_PRODUTOS_ID RETURNS ( ID INTEGER) AS BEGIN EXIT; END^ CREATE TABLE LINKS ( ID_LINKS INTEGER NOT NULL, SITE VARCHAR(50) NOT NULL, LINK VARCHAR(400) NOT NULL, DATA_CADASTRO TIMESTAMP DEFAULT current_timestamp NOT NULL, ATIVO CHAR(3) DEFAULT 'SIM' NOT NULL ); CREATE TABLE PRODUTOS ( ID_PRODUTOS INTEGER NOT NULL, DESCRICAO VARCHAR(400) NOT NULL, VALOR DECIMAL(12,2) NOT NULL, LINK VARCHAR(400) NOT NULL, LOJA VARCHAR(100) NOT NULL, DATA_CADASTRO TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, DATA_ALTERACAO TIMESTAMP, ATIVO CHAR(3) DEFAULT 'SIM' NOT NULL ); ALTER TABLE LINKS ADD PRIMARY KEY (ID_LINKS); ALTER TABLE PRODUTOS ADD CONSTRAINT PK_PRODUTOS PRIMARY KEY (ID_PRODUTOS) USING INDEX INDEX_ID_PRODUTOS; CREATE INDEX LINK_ATIVO ON LINKS (ATIVO); CREATE INDEX LINK_LINK ON LINKS (LINK); CREATE INDEX LINK_SITE ON LINKS (SITE); CREATE INDEX PROD_ATIVO ON PRODUTOS (ATIVO); CREATE INDEX PROD_DATA_CAD ON PRODUTOS (DATA_CADASTRO); CREATE INDEX PROD_DESCRICAO ON PRODUTOS (DESCRICAO); CREATE INDEX PROD_LOJA ON PRODUTOS (LOJA); 39