UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO APLICATIVO PARA EMPRESA DE HELP DESK BASEADO EM GESTÃO DO CONHECIMENTO UTILIZANDO A TÉCNICA DE MINERAÇÃO DE TEXTO. KLAUBER SCHEFFLER FISCHER BLUMENAU 2012 2012/1-09 KLAUBER SCHEFFLER FISCHER APLICATIVO PARA EMPRESA DE HELP DESK BASEADO EM GESTÃO DO CONHECIMENTO UTILIZANDO A TÉCNICA DE MINERAÇÃO DE TEXTO. Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação— Bacharelado. Prof. Oscar Dalfovo, Doutor - Orientador BLUMENAU 2012 2012/1-09 APLICATIVO PARA EMPRESA DE HELP DESK BASEADO EM GESTÃO DO CONHECIMENTO UTILIZANDO A TÉCNICA DE MINERAÇÃO DE TEXTO. Por KLAUBER SCHEFFLER FISCHER Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: ______________________________________________________ Prof. Oscar Dalfovo, Doutor – Orientador, FURB Membro: ______________________________________________________ Prof. Roberto Heinzle, Doutor – FURB Membro: ______________________________________________________ Prof. Cláudio Ratke, Mestre – FURB Blumenau, 10 de julho de 2012. Dedico este trabalho aos meus pais, companheiros de curso, professores e amigos, especialmente aqueles que me ajudaram diretamente na realização deste. AGRADECIMENTOS A Deus, pela sua compaixão e justiça. Aos meus pais, Ademar e Madalene, que mesmo longe, sempre estiveram presentes. Aos meus amigos, pelas fugas e companhias oferecidas nos momentos de estresse. Ao meu orientador, Oscar Dalfovo, por compartilhar seu conhecimento, ser um exemplo de profissional e docente, fonte de inspiração. A todos os professores do Departamento de Sistemas e Computação da Universidade Regional de Blumenau, em especial o mestre Wilson Pedro Carli. Seja você quem for, seja qual for à posição social que você tenha na vida, a mais alta ou a mais baixa, tenha sempre como meta muita força, muita determinação e sempre faça tudo com muito amor e com muita fé em Deus, que um dia você chega lá. De alguma maneira você chega lá. Ayrton Senna RESUMO Este trabalho tem como objetivo apresentar um aplicativo de apoio ao setor de suporte aos clientes de uma empresa. O aplicativo possibilita aos usuários a criação de um banco de dados com os erros conhecidos e suas soluções. Através de técnicas e regras, o aplicativo permite fazer a busca das soluções através da técnica text mining, apresentando os resultados de forma eficaz, facilitando a tomada de decisão do usuário. Para o desenvolvimento do sistema, utilizou-se a linguagem de programação Java, o ambiente integrado de desenvolvimento Eclipse, o framework para desenvolvimento de interface web Google web toolkit, o framework de apoio a linguística computacional LingPipe e o banco de dados Hibernate. A utilização do aplicativo resultou a possibilidade de gerenciar os erros conhecidos e suas soluções, tornando o processo de trabalho mais eficaz aos usuários e resultando na melhora do atendimento aos clientes. Palavras-chave: Aplicativo para help desk. Gestão do conhecimento. Text mining. ABSTRACT This work aims to present an application to help the support sector of a company. The application enables users to create a database of known incidents and their solutions. Through techniques and rules, the application enables the search for solutions through text mining, presenting the results effectively, facilitating the decision of the users. For system development, was used Java programming language, the Eclipse IDE also the framework for developing web interface Google Web Tools, the LingPipe framework to support computational linguistics and the Hibernate database. Using the application resulted in the ability to manage incidents and their solutions, making the work process more effectively to the users and resulting in improved customer services. Key-words: Help desk application. Knowledge management. Text mining. LISTA DE FIGURAS Figura 1 - Etapas recomendadas para aplicação da técnica de text mining .............................. 18 Figura 2 - Passo-a-passo da aplicação da técnica de text mining de Wives ............................. 20 Figura 3 - Consulta de similaridades ........................................................................................ 22 Figura 4 - Cadastro de problemas ............................................................................................. 23 Figura 5 – Relatório de Selbach ............................................................................................... 24 Figura 6 - Diagrama de casos de uso ........................................................................................ 28 Figura 7 - Diagrama de classes ................................................................................................. 29 Figura 8 – Login ....................................................................................................................... 32 Figura 9 – Página Inicial ........................................................................................................... 33 Figura 10 – Cadastro de usuários ............................................................................................. 34 Figura 11 – Cadastro de erro conhecido em branco ................................................................. 35 Figura 12 – Cadastro de erro conhecido preenchido ................................................................ 36 Figura 13 - Buscar soluções...................................................................................................... 37 Figura 14 – Resultados da busca .............................................................................................. 38 Figura 15 – Atualizar soluções ................................................................................................. 39 Figura 16 – Relevância dos resultados ..................................................................................... 40 Figura 17 – Cadastrar erro conhecido....................................................................................... 46 Figura 18 – Buscar erro conhecido ........................................................................................... 46 Figura 19 – Satisfação do resultado .......................................................................................... 47 Figura 20 – Percentual de relevância ........................................................................................ 47 Figura 21 – Atualizar os erros conhecidos ............................................................................... 48 Figura 22 – Adequação do aplicativo ....................................................................................... 48 Figura 23 – Coexistência do aplicativo .................................................................................... 49 Figura 24 – Usabilidade............................................................................................................ 49 Figura 25 – Tempo x Trabalho ................................................................................................. 50 LISTA DE QUADROS Quadro 1 - Requisitos funcionais ............................................................................................. 27 Quadro 2 - Requisitos não funcionais ...................................................................................... 27 Quadro 3 – Stopwords (palavras desnecessárias) ..................................................................... 41 Quadro 4 – Stemmer (derivações) ............................................................................................ 41 Quadro 5 – Conceitos ............................................................................................................... 42 Quadro 6 – Text mining ............................................................................................................ 42 Quadro 7 – Percentual de relevância ........................................................................................ 43 Quadro 8 – Texto original ........................................................................................................ 43 Quadro 9 - Stopwords ............................................................................................................... 43 Quadro 10 - Radicalização ....................................................................................................... 43 Quadro 11 – Conceituação ....................................................................................................... 43 LISTA DE SIGLAS CIOSP - Congresso Internacional de Odontologia de São Paulo CSS - Cascading Style Sheets DCT - Descoberta de Conhecimento a partir de Textos EA - Enterprise Architect GWT - Google Web Toolkit IDE - Integrated Development Environment IEC - International Electrotechnical Commission ISO - International Organization for Standardization ITIL - Information Technology Infrastructure Library JVM - Java Virtual Machine KDT - Knowledge Discovery from Text MU – Manual do Usuário RBC - Raciocínio Baseado em Casos RF - Requisitos Funcionais RNF - Requisitos Não funcionais TCC - Trabalho de Conclusão de Curso SUMÁRIO 1 INTRODUÇÃO .................................................................................................................. 12 1.1 OBJETIVOS DO TRABALHO ........................................................................................ 13 1.2 ESTRUTURA DO TRABALHO ...................................................................................... 13 2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 14 2.1 HELP DESK ...................................................................................................................... 14 2.2 GESTÃO DO CONHECIMENTO.................................................................................... 15 2.3 BASE DE CONHECIMENTO.......................................................................................... 17 2.4 DESCOBERTA DE CONHECIMENTO EM TEXTO .................................................... 18 2.5 SISTEMA ATUAL ........................................................................................................... 20 2.6 TRABALHOS CORRELATOS ........................................................................................ 21 3 DESENVOLVIMENTO .................................................................................................... 25 3.1 LEVANTAMENTO DE INFORMAÇÕES ...................................................................... 25 3.2 ESPECIFICAÇÃO ............................................................................................................ 26 3.2.1 Requisitos Principais ....................................................................................................... 26 3.2.2 Diagrama de casos de uso ............................................................................................... 27 3.2.3 Diagrama de Classes ....................................................................................................... 28 3.3 IMPLEMENTAÇÃO ........................................................................................................ 29 3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 30 3.3.1.1 Java ............................................................................................................................... 30 3.3.1.2 Eclipse........................................................................................................................... 30 3.3.1.3 Hibernate....................................................................................................................... 30 3.3.1.4 Google Web Toolkit ..................................................................................................... 31 3.3.1.5 LingPipe ........................................................................................................................ 31 3.3.1.6 Tesauro ......................................................................................................................... 32 3.3.2 Operacionalidade do aplicativo ....................................................................................... 32 3.3.2.1 Login ............................................................................................................................. 32 3.3.2.2 Menus da página inicial ................................................................................................ 33 3.3.2.3 Cadastro de usuários ..................................................................................................... 33 3.3.2.4 Cadastro de erros conhecidos ....................................................................................... 34 3.3.2.5 Busca de soluções ......................................................................................................... 36 3.3.2.6 Detalhes das soluções cadastradas ................................................................................ 38 3.3.2.7 Percentual de relevância dos resultados........................................................................ 39 3.3.2.8 Código fonte da aplicação ............................................................................................ 40 3.4 RESULTADOS E DISCUSSÃO ...................................................................................... 44 4 CONCLUSÕES .................................................................................................................. 51 4.1 EXTENSÕES .................................................................................................................... 52 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 53 APÊNDICE A – Descrição dos Casos de Uso ...................................................................... 56 12 1 INTRODUÇÃO As empresas utilizam sistemas denominados help desk, pois este tipo de software tem a função de auxiliar as equipes de suporte a coordenar e solucionar os erros conhecidos que ocorrem com os usuários, assegurando que estes chamados não sejam perdidos, esquecidos ou negligenciados. Este tipo de sistema constitui um mecanismo computacional facilitador da informação (CAVALARI; COSTA, 2005), porém sem nenhuma gestão de conhecimento implícita. A gestão do conhecimento realiza a captação do conhecimento que envolve as rotinas e práticas dentro da organização, com o objetivo de criar métodos para que este conhecimento seja unido, expandido e transferido de forma a aumentar o capital intelectual organizacional (DALFOVO, 2004). Combinada com os sistemas help desk e gestão do conhecimento, a técnica de text mining (mineração de texto), conforme Furtado (2004, p1), "auxilia as ferramentas de descoberta de conhecimento a extraírem informações padrões contidas nos textos, seja uma única palavra ou um conjunto de palavras". Ainda de acordo com Furtado (2004), o text mining pode ser usado para formalizar e explorar o conhecimento tácito, proporcionando a descoberta de soluções e de novos conhecimentos. As ferramentas de text mining têm o propósito de facilitar o processo de recuperação de informação, minimizando as dificuldades enfrentadas e apresentando ao usuário algum tipo de conhecimento útil e novo, satisfazendo as necessidades de novas informações. Trazendo este panorama para a empresa HartSystem Informática, porém observa-se que a utilização de um sistema help desk, não é feita a gestão do conhecimento. Atualmente cada profissional de suporte da empresa resolve os erros conhecidos utilizando conhecimentos tácitos, adquiridos com a vivência, pois não existe uma base de dados de conhecimento única, que apresente todas as soluções conhecidas de forma clara, formatadas e adequadas para explicação. Os profissionais do suporte dependem de dados memorizados, sem padronização ou formatação, o que favorece as chances de esquecimento e erros. Visto isso, o trabalho disponibiliza na empresa HartSystem Informática um aplicativo help desk onde os usuários podem, além de cadastrar e atualizar as soluções conhecidas fazendo gestão do conhecimento, também pesquisá-las de forma ágil através da técnica text mining, fornecendo rapidamente aos clientes soluções preparadas e formatadas na forma ideal. 13 1.1 OBJETIVOS DO TRABALHO O objetivo geral do trabalho é o desenvolvimento de um aplicativo para empresa HartSystem Informática, no apoio ao setor de suporte ao cliente, aplicando gestão do conhecimento e a técnica de text mining (mineração de texto) para o cadastro e pesquisa de soluções conhecidas. Os objetivos específicos deste trabalho são: a) permitir aos profissionais de suporte o cadastramento de erros conhecidos, suas soluções e a atualização destes cadastros; b) utilizar a técnica de text mining para possibilitar ao profissional de suporte pesquisar as soluções dos erros conhecidos cadastrados; c) apresentar no retorno da busca o percentual de relevância da solução encontrada, auxiliando o profissional de suporte na tomada de decisão. 1.2 ESTRUTURA DO TRABALHO No primeiro capítulo tem-se a introdução ao tema principal deste trabalho com a apresentação da justificativa e dos objetivos. No segundo capítulo apresenta-se a fundamentação teórica pesquisada, sobre help desk gestão do conhecimento, base de dados de conhecimento e descoberta de conhecimento em texto. Também é citado o sistema atual e três trabalhos correlatos. No terceiro capítulo apresenta-se o desenvolvimento do aplicativo, iniciando-se com o levantamento de informações tendo na sequência especificação de requisitos, detalhes da implementação e resultados e discussão. No quarto capítulo têm-se as considerações finais, bem como as sugestões para trabalhos futuros. 14 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo aborda os assuntos help desk, gestão do conhecimento, base de dados de conhecimento, descoberta de conhecimento em texto - text mining, sistema atual e trabalhos correlatos. 2.1 HELP DESK Os sistemas help desk têm a principal característica de ser um facilitador de informações ao usuário, não importando se esta facilidade é ou não de natureza técnica computacional. Um sistema help desk constitui um mecanismo facilitador de informação (MARTINS, 2000). O termo help desk surgiu com o aparecimento dos computadores pessoais nos anos 80, quando cresceu a necessidade de suporte aos novos usuários de computadores, entre eles gerentes, técnicos e secretárias. Assim, muitas empresas criaram os Centros de Informação para auxiliar no uso dos computadores pessoais. Os primeiros sistemas usados pelos Centros de Informação foram os sistemas gerenciadores de bancos de dados, com informações sobre os clientes de software e hardware. Com o advento dos sistemas especialistas, importantes funções de auxílio a clientes puderam ser desenvolvidas pelos Centros de Informação (KAMP, 1993 apud WILVERT, 2005, p. 16). Martins (2000) relata que enquanto nos anos 80 os usuários eram especialistas em informática, na década de 90 esse quadro se inverteu radicalmente. A população de usuários de computadores passou a ser composta por pessoas oriundas de áreas onde a informática não era fundamental e, por essa razão, estas pessoas possuíam praticamente nenhum conhecimento sobre o uso dos computadores. Essa mudança proporcionou a criação de um tipo de técnico de suporte capaz de atender a demanda deste novo público. Além disso, as empresas perceberam que era importante armazenar todos os dados decorrentes dos problemas ocorridos, assim como a maneira de solucioná-los. Desta forma, o usuário teria um atendimento mais rápido e personalizado e a empresa teria um controle maior sobre quais são os problemas mais comuns e as melhores formas de solucioná-los. 15 Statdlober (2006, p. 15) diz que a gestão do atendimento em um help desk procura oferecer uma metodologia para tratar e gerenciar diversas questões. O processo de atendimento a erros conhecidos possui inúmeros elementos que o compõem, mas os oito elementos principais que compõem o processo de atendimento são (STATDLOBER, 2006, p. 15): a) usuário final contatar a central de atendimento; b) central de atendimento realizar o atendimento em si; c) registrar no sistema e encaminhar para solução; d) qualificar o chamado e encaminhar para uma fila de atendimento; e) responsável pelo atendimento atuar na solução; f) gerente possuir acesso a todos os erros conhecidos registrados; g) solução aplicada ao chamado ficar disponível para futuros erros conhecidos e demais técnicos; h) comunicar o usuário final sobre eventos durante o atendimento ao chamado. Silva (2004, p. 15) afirma que “uma ferramenta de help desk, sem dúvida proporciona um diferencial que além da documentação e sistematização, oferece possibilidade de análise dos processos e fluxo de informações”. 2.2 GESTÃO DO CONHECIMENTO Atualmente vive-se em um cenário complexo onde fenômenos sociais e econômicos, de abrangência mundial, são responsáveis por constantes reestruturações no ambiente de negócios. A globalização impulsionada pela tecnologia da informação tornou-se uma realidade da qual não se pode escapar. É nesse contexto que a gestão do conhecimento se transforma em um valioso recurso estratégico para a vida das pessoas e das empresas. Sua aquisição e aplicação sempre representaram estímulo para as conquistas de inúmeras civilizações. No entanto, apenas "saber muito" sobre alguma coisa não proporciona maior poder de competição para uma organização (SILVA, 2001 apud DALFOVO, TAMBORLIN, 2010, p. 279). Conhecimento é a informação apropriada e interpretada pelo ser humano, possibilitando-o a ter novas ideias. Alguns dos fatores que influenciam nesses processos de busca do conhecimento são a rápida evolução da tecnologia, o acesso aos mercados globais e 16 como lidar e extrair dados e informações da inteligência competitiva nas organizações (DALFOVO, 2007). De acordo com Dalfovo (2004), a gestão do conhecimento pode ser utilizada pelas empresas, como vantagem competitiva. Isto causa uma reestruturação crescente no modo em que a organização administra o seu conhecimento e as suas informações. Conforme Figueiredo (2005) a gestão do conhecimento como estratégia competitiva nas organizações alavanca e multiplica o capital intelectual. Além disso, a gestão do conhecimento está a cada dia mais integrada na organização, pois possui gerenciamento, métodos e ferramentas imprescindíveis para que os executivos das empresas possam utilizá-las com agilidade e precisão, e ainda, se bem manejadas, a utilização do capital intelectual será o diferencial competitivo para o negócio. Nonaka e Takeuchi (1997) classificam o conhecimento em dois tipos: a) tácito, é um tipo de conhecimento muito difícil de ser expresso por meio de palavras e é adquirido com a experiência, de maneira prática utilizando-se da intuição e da subjetividade. Segundo os autores, o aprendizado mais poderoso vem da experiência direta e é aquele que se articula por meio da linguagem formal, com afirmações gramaticais, expressões matemáticas, especificações, manuais, etc.; envolve fatores intangíveis como, por exemplo, crenças pessoais, perspectivas, sistema de valor, intuições, emoções e habilidades individuais. Este processo pode ter inclusive sua interatividade prejudicada devido aos ruídos que na maioria das vezes existem em qualquer processo de comunicação; b) explícito, é um tipo de conhecimento que pode ser facilmente expresso em palavras ou números e pode ser prontamente transmitido formalmente e sistematicamente entre pessoas. Envolve o conhecimento de fatos. É objetivo, teórico, digital e articula por meio da linguagem formal, com afirmações gramaticais, expressões matemáticas, especificações, manuais, etc. Esse foi o modo dominante de conhecimento na tradição filosófica ocidental. Probst, Raub e Romhardt (2002), explicam que as empresas despendem tempo e dinheiro para solucionar certos problemas quando, muitas vezes, soluções já haviam sido encontradas no passado ou estão sendo encontradas por outras equipes. Neste sentido, esses e outros autores atribuem a importância à identificação da base de conhecimento existente, sendo abordando no item a seguir. 17 2.3 BASE DE CONHECIMENTO Figueiredo (2002) considera bases de conhecimento como containers de conhecimento e informação, concebidas para armazenar, compartilhar e disseminar conhecimentos específicos, resolvendo questões de volume de armazenamento, organização, recuperação e herança do conhecimento, mantendo e estimulando os níveis de colaboração e de compartilhamento de conhecimento e informações relevantes dentro da empresa. Ferreira, Loureiro e Martinez (2004), afirmam que a base de conhecimento é um ambiente de trabalho para o compartilhamento, recuperação e distribuição de conhecimento específico. Afirmam que uma base de conhecimento não possui modelo ou tecnologia específicos, a sua implementação depende das características e objetivos da empresa que irá utilizá-la. Volino e Kendrich (2000 apud WEHRMEISTER, 2008, p. 20), explicam que bases de conhecimento consideradas simples utilizam busca por palavras-chaves em perguntas e respostas pré-determinadas. Diante disso, podem-se imaginar diferentes situações pelas quais as organizações utilizam bases de conhecimentos: a) quando há necessidade de se resolver um problema e se tenta aplicar uma solução disponível para tal; b) quando se tem uma situação e se procura uma experiência anterior que possa ajudar ou dar pistas para que se possa melhor enfrentá-la; c) quando se está trazendo alguém que possa ajudar a resolver um problema. Probst, Raub e Romhardt (2002) salientam que, as mudanças que ocorrem regularmente na base de conhecimento, através de contribuições dos membros de uma organização, constituem a aprendizagem organizacional, a criação de estruturas coletivas de referência e o crescimento da competência da organização para agir e resolver problemas. 18 2.4 DESCOBERTA DE CONHECIMENTO EM TEXTO A Descoberta de Conhecimento a partir de Textos (DCT), em inglês Knowledge Discovery from Text (KDT), que neste trabalho será tratada como text mining (mineração de textos), consiste na aplicação de técnicas de análise de informações e de aprendizado de máquina em dados textuais (WIVES, 2004). A técnica busca extrair conhecimento útil ao usuário, recuperando informações e permitindo ao usuário procurar o conteúdo que lhe seja interessante dentro do conjunto de textos pré-selecionados, o que reduz o tempo de busca e proporciona um retorno de informação mais significativo. “A área de text mining se refere ao processo de extrair padrões não triviais interessantes ou conhecimento a partir de documentos de texto não estruturado, podendo ser visto como uma extensão do data mining.” (FURTADO, 2004, p. 30). Na Figura 1 são apresentadas as etapas recomendadas no desenvolvimento de um aplicativo utilizando text mining. Fonte: Corrêa (2003). Figura 1 - Etapas recomendadas para aplicação da técnica de text mining Visando recuperar informações relevantes, as técnicas de data mining surgiram para utilização em dados estruturados e as técnicas para text mining estão sendo desenvolvidas constantemente e aprimoradas para tratar dados não estruturados, representando uma área interessante (MILLER, 2005 apud FINK, 2010, p. 20). 19 A técnica de text mining vem solucionar grande parte dos problemas relacionados à busca, recuperação e análise de informações. A sobrecarga de informação é um dos maiores problemas enfrentados pelos usuários de sistemas atualmente (WIVES, 2004). Embora a mineração de texto possa trabalhar com qualquer tipo de informação, esta deve seguir alguns critérios (HOESCHL; BUENO; BORTOLON, 2002), quando da visualização pelo usuário: a) a informação recuperada deve ter valor para o operador do conhecimento. A mineração de textos deve fornecer novas visões sobre os textos para os operadores do conhecimento. Isto permite a adição de valores à base de conhecimento; b) o conteúdo deve ser baseado em texto. Para dados numéricos as tecnologias existentes estão mais bem desenvolvidas; c) o valor da mineração de textos é diretamente proporcional ao valor do dado que se está minerando. Quanto mais importante for o conhecimento contido na coleção de textos, mais valiosa será a mineração; d) o conteúdo deve estar explicitamente declarado no texto, tais como textos técnicos e científicos; e) a mineração de textos é mais valiosa quanto menos estruturado for o texto. Textos desorganizados, contendo acúmulo de informações são os mais indicados. De acordo com Wives (2004), existem diferentes tipos de métodos que podem ser utilizados para a mineração de textos. Entre eles estão o processamento de dados, a predição, a regressão, a classificação, o agrupamento ou clustering, a análise de associações e visualização, entre outros. Porém, qualquer um dos métodos de descoberta tradicional pode ser aplicado nos textos, principalmente se for utilizado o método de extração de informações, que identifica informações relevantes nos documentos e as coloca em um formato estruturado. Conforme apresentado na Figura 2, os passos que Wives (2004) utilizou na aplicação do método text mining para descoberta de conhecimento em texto. 20 Fonte: Wives (2004). Figura 2 - Passo-a-passo da aplicação da técnica de text mining de Wives 2.5 SISTEMA ATUAL A HartSystem Informática foi fundada em 23 de Novembro de 1993. Lançou o software odontológico ProDent no 16º Congresso Internacional de Odontologia de São Paulo (CIOSP), em Janeiro de 1994. Desde esta data, está se dedicando exclusivamente ao desenvolvimento e comercialização de licenças do software ProDent (HARTSYSTEM INFORMÁTICA LDTA, 2012). O software ProDent é um sistema para administração de clínicas e consultórios odontológicos. Oferece cadastro de clientes, agenda, odontograma, mala direta, contas a receber, contas a pagar e outros. Possui também módulos específicos: a) para clínicas de Radiologia; 21 b) para Operadoras de planos de convênios; c) para clínicas que emitem Nota Fiscal de Serviço Eletrônica. A empresa oferece aos clientes o suporte à distância para resolução de erros conhecidos, dúvidas, erros e sugestões. Atualmente o processo de atendimento inicia-se com a ligação ou atendimento do cliente pelo bate-papo online, onde o mesmo expõe sua situação ao profissional de suporte que lhe atender no momento. Se o profissional de suporte souber solucionar, dará continuidade ao atendimento, caso não saiba, este estará perguntando a solução a um profissional de suporte mais experiente na área. Frequentemente o profissional de suporte sabe que já respondeu sobre esta mesma dúvida a outro cliente, no entanto, muitas vezes não se recorda da solução conhecida. Diante desta situação o cliente muitas vezes terá que aguardar um longo tempo pela solução, pois o profissional de suporte irá procurar a solução e ocasionalmente ainda ligará ou enviará um e-mail contendo a resposta ao questionamento mais tarde. Cada contato feito pelo cliente é registrado num sistema interno próprio, onde se tenta descrever como foi solucionado o caso. Porém as soluções conhecidas não estão concentradas em uma base de dados de conhecimento geral, apenas individualmente em cada cadastro de cliente, o que torna a pesquisa por soluções conhecidas um processo demorado e pouco preciso. Como este processo acima é manual e não integrado, o conhecimento acaba sendo tácito e está armazenado apenas na memória de cada colaborador, que resolve as ocorrências com base nos casos já ocorridos anteriormente de acordo com suas lembranças. 2.6 TRABALHOS CORRELATOS Wilvert (2005) apresentou como Trabalho de Conclusão de Curso (TCC) um sistema de apoio a help desk utilizando gestão do conhecimento e técnica de Reconhecimento Baseado em Casos (RBC) para área do suporte, com objetivo de automatizar a busca por soluções similares a novas ocorrências, conforme Figura 3. O diferencial do trabalho desenvolvido quanto ao sistema do trabalho de Wilvert é uma aplicação web utilizando a técnica text mining ao invés de RBC. 22 Fonte: Wilvert (2005). Figura 3 - Consulta de similaridades Fink (2010) implementou a técnica text mining para auxiliar o técnico do nível 1 de um service desk na classificação de erros conhecidos, em uma base de problemas (conhecimentos) já existente. Além da técnica de text mining, foi utilizado como modelo de referência o Information Technology Infrastructure Library (ITIL). Este trabalho também se identifica com a aplicação desenvolvida pela implementação de uma técnica text mining em ambiente web. Na Figura 4, o cadastro de problema e solução de Fink (2010). 23 Fonte: Fink (2010). Figura 4 - Cadastro de problemas Selbach (2010) desenvolveu um sistema web para auxílio em pesquisas e gerência de dados de entidades de saúde. Trata-se de um sistema que, a partir de dados de pacientes da entidade permite a criação e manutenção de pesquisas sobre esses dados. Além das pesquisas, existem relatórios específicos para auxiliar os gestores na tomada de decisão. É utilizado gestão do conhecimento, data warehouse e data mining. A técnica data mining é voltada para mineração de dados e números, ao contrário de text mining, voltando para textos estruturados. Na Figura 5, um exemplo de relatório de Selbach (2010). 24 Fonte: Selbach (2010). Figura 5 – Relatório de Selbach Os trabalhos citados possuem objetivos comuns entre a aplicação desenvolvida, cuja finalidade é buscar de resultados relevantes e precisos de forma automatizada para os usuários. 25 3 DESENVOLVIMENTO Neste capítulo estão descritos a particularidades técnicas do aplicativo proposto tais como a descrição do mesmo e a apresentação dos requisitos funcionais e não funcionais, diagrama de casos de uso e suas descrições. Na seção de implementação tem-se as técnicas e ferramentas utilizadas, demonstra-se a operacionalidade do sistema através de telas e por fim a seção com os resultados e discussões. 3.1 LEVANTAMENTO DE INFORMAÇÕES O aplicativo web auxilia os profissionais do setor de suporte a compartilhar os conhecimentos necessários para resolução dos erros conhecidos informados pelos clientes, permitindo o cadastro das soluções conhecidas, manipulação e pesquisa deste conhecimento. É importante oferecer aos profissionais de suporte uma melhor forma de gerenciar e transformar o conhecimento individual em um conhecimento coletivo. A consulta a partir da base de conhecimento é uma das funções principais do aplicativo desenvolvido. Entendido como repositório de conhecimento e de informações, este aplicativo armazena, compartilha e dissemina os conhecimentos dentro da organização. O primeiro passo é cadastrar uma base de conhecimentos onde são registrados os erros conhecidos já conhecidos pelo setor de suporte e a solução conhecida destes. As diversas situações levantadas pelos clientes e suas respectivas soluções são descritas através da reprodução das mensagens automáticas (tratamento de erros) do sistema ProDent ou em texto descritivo, utilizando o linguajar do cliente que é leigo e não utiliza os jargões da informática. As soluções dos erros conhecidos são registradas em seguida do erro conhecido, a partir do conhecimento dos profissionais de suporte e com base no manual do usuário existente. A partir da existência do banco de informações, o aplicativo web permite que sejam efetuadas buscas utilizando a técnica de text mining. De forma que o usuário do setor de suporte pergunta ao cliente qual a mensagem apresentada, a dificuldade encontrada ou sua dúvida, (erro conhecido), e digita desta forma para busca do aplicativo no banco. Partindo disto, o aplicativo apresenta as soluções já cadastradas, baseado no texto pesquisado. 26 Pelo fato de muitas mensagens e erros conhecidos possuírem discretas diferenças em seu texto (porém soluções distintas), é apresentando um percentual de relevância para as possíveis soluções encontradas, mediante o termo pesquisado pelo usuário, auxiliando o usuário a escolher a solução ideal. As etapas executadas no desenvolvimento do aplicativo são: a) cadastro dos dados: o text mining deve ser baseado no armazenamento de dados de forma estruturada; b) processamento e transformação: elimina da frase os dados que não são adequados informações, ou seja, artigos, preposições, plural das palavras, conforme Figura 2; c) mineração de texto: a atividade de descoberta do conhecimento é onde são processados os algoritmos da técnica de text mining; d) armazenamento: nesta etapa os dados deverão ser armazenados adequadamente para facilitar a busca; e) interpretação/avaliação: os resultados do processo de descoberta do conhecimento são apresentados de forma que o usuário possa entender e interpretar os resultados obtidos. 3.2 ESPECIFICAÇÃO Esta seção descreve os requisitos funcionais (RF) e não funcionais (RNF), bem como os diagramas de casos de uso e diagrama de classe, desenvolvidos para o aplicativo. A ferramenta Enterprise Architect (EA), em sua versão 7.5.850, foi utilizada na elaboração dos diagramas de casos de uso. 3.2.1 Requisitos Principais O Quadro 1 apresenta os requisitos funcionais previstos para o aplicativo e sua rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s). 27 Requisitos Funcionais Caso de Uso RF01: O aplicativo deve permitir o cadastramento de usuários (criação, UC01 alteração, exclusão). RF02: O aplicativo deve exigir login e senha para permitir o acesso à UC02 interface inicial. RF03: O aplicativo deve permitir ao profissional de suporte o cadastro UC03 dos erros conhecidos e sua(s) solução(s) (criação, alteração, exclusão). RF04: O aplicativo deve permitir ao profissional de suporte atribuir UC04 categorias aos erros conhecidos criados. RF05: O aplicativo deve permitir ao profissional de suporte pesquisar as UC05 soluções no banco de dados de erros conhecidos, utilizando a técnica de text mining. RF06: O aplicativo deve apresentar no resultado da pesquisa o grau de UC06 relevância do termo pesquisado. Quadro 1 - Requisitos funcionais O Quadro 2 lista os requisitos não funcionais previstos para o aplicativo. Requisitos Não Funcionais RNF01: O aplicativo deve utilizar a conexão com o banco de dados Hibernate. RNF02: O aplicativo deve ser desenvolvido utilizando a linguagem Java. RNF03: O aplicativo deve ser compatível com as mais atuais versões de navegadores disponíveis no mercado, como o Internet Explorer 8 e Google Chrome 13. RNF04: O aplicativo deve conter visualização de tela 1024x768. RNF05: Os usuários poderão acessar o aplicativo utilizando qualquer sistema operacional. Quadro 2 - Requisitos não funcionais 3.2.2 Diagrama de casos de uso Esta subseção apresenta os diagramas de caso de uso do aplicativo. Para melhor entendimento do projeto, o detalhamento dos principais casos de uso se encontra no Apêndice A. A Figura 6 apresenta os casos de usos relativos às operações realizadas no aplicativo. 28 Figura 6 - Diagrama de casos de uso 3.2.3 Diagrama de Classes Na Figura 7 apresenta-se o diagrama de classes, contendo a especificação dos registros que serão armazenados no banco de dados, e o relacionamento entre as classes. 29 Figura 7 - Diagrama de classes A função de cada classe de entidade está descrita a seguir: a) Usuario: classe que armazena informações dos usuários do aplicativo; b) Grupo: armazena informações referentes à categoria dos erros conhecidos; c) Erro conhecido: classe que armazena as informações dos erros conhecidos cadastrados; d) Solução: armazena as informações referente a solução dos erros conhecidos. 3.3 IMPLEMENTAÇÃO Nesta seção são apresentadas as informações sobre as técnicas e ferramentas utilizadas para o desenvolvimento deste trabalho. Também são apresentadas as principais operacionalidades do aplicativo juntamente com algumas telas do mesmo. 30 3.3.1 Técnicas e ferramentas utilizadas Nesta subseção apresentam-se informações sobre a linguagem Java, o ambiente Eclipse, o banco de dados Hibernate, o framework Google Web Toolkit (GWT) e o framework de auxílio à linguística LingPipe. 3.3.1.1 Java A linguagem Java foi escolhida para o desenvolvimento deste aplicativo por ser um ambiente gratuito. É utilizado em todo mundo e oferece muitas ferramentas e frameworks para o seu desenvolvimento, que o tornam ainda mais completo. De acordo com a Oracle, a linguagem Java é líder de mercado entre as linguagens para desenvolvimento web, sendo utilizada por mais de sete bilhões de equipamento no mundo e possui uma grande comunidade de desenvolvedores não remunerados, com intuito de melhorar a tecnologia e desenvolver suas capacidades. O Java é uma linguagem independente de plataforma e pode ser executada em qualquer sistema operacional, desde que o mesmo possua uma Java Virtual Machine (JVM) (ORACLE, 2012). 3.3.1.2 Eclipse Para escrever o código em Java foi utilizado o Eclipse, que é o Ambiente Integrado de Desenvolvimento, ou em inglês Integrated Development Environment (IDE), mais utilizado no mundo (ECLIPSE, 2012). O Eclipse permite o desenvolvimento de diversas outras linguagens através de plug-ins e tem integração com vários frameworks, por isto foi escolhido como IDE para o desenvolvimento deste aplicativo. 3.3.1.3 Hibernate O Hibernate é um framework escrito na linguagem Java que auxilia no mapeamento objeto-relacional. Este framework facilita o mapeamento dos atributos entre um banco de 31 dados relacional e o modelo Classe/Objeto da aplicação. O Hibernate não requer interfaces ou classes base e permite que as classes em Java sejam desenvolvidas incluindo todos os recursos da Orientação a Objetos. O Hibernate possui um bom desempenho, pois gera boa parte do código SQL necessário em tempo de compilação. Por não necessitar de nenhum banco de dados ou tabelas adicionais, este framework também é de fácil utilização (HIBERNATE, 2011). No desenvolvimento do aplicativo, a consistência de informações no banco de dados é feita com a ajuda do Hibernate. As classes que são salvas no banco de dados são mapeadas e salvas em uma tabela do banco de dados. 3.3.1.4 Google Web Toolkit O GWT é um toolkit (caixa de ferramentas) código-fonte aberto permitindo aos desenvolvedores criar aplicativos em linguagem de programação Java. O GWT suporta cliente-servidor e desenvolvimento em qualquer IDE Java. O GWT enfatiza a reutilização e soluções eficientes para os ambientes web (GOOGLE, 2012). Foi escolhido pela facilidade que proporciona para criar layouts em linguagem web. 3.3.1.5 LingPipe O framework LingPipe é um kit de ferramentas para processamento de textos em linguística computacional. A arquitetura do LingPipe é projetada para ser eficiente, escalável e reutilizável. Ele fornece suporte à linguagem Java, é multilíngue e multigênero. O framework pode ser usado para fazer tarefas como (LINGPIPE, 2012): a) encontrar os nomes de pessoas, organizações ou locais em notícias; b) classificar automaticamente os resultados da pesquisa em categorias; c) sugerir ortografias corretas de consultas. Neste trabalho é usado para remover as stopwords, ou seja, artigos, preposições, presentes nos termos pesquisados. 32 3.3.1.6 Tesauro Tesauro, também conhecido como dicionário de ideias afins, é uma lista de palavras com significados semelhantes, dentro de um domínio específico de conhecimento. Por definição, um tesauro é restrito. Não deve ser encarado simplesmente como uma lista de sinônimos, pois o objetivo do tesauro é justamente mostrar as diferenças mínimas entre as palavras e ajudar o escritor a escolher a palavra exata. Neste trabalho foi utilizado no passo 5 de Wives (2004), conforme a Figura 2, para o descobrimento de conceitos das palavras. 3.3.2 Operacionalidade do aplicativo Esta subseção apresenta as telas do aplicativo com uma breve apresentação de suas funcionalidades, onde foram adotas os passos de Wives (2004), conforme Figura 2. Todos os dados presentes nestas telas são fictícios e servem apenas para exemplificar o funcionamento da aplicação. 3.3.2.1 Login O primeiro passo para os usuários acessarem o aplicativo é realizar o login para identifica-se. Para realizar o login, os usuários devem informar seu e-mail e senha cadastrados no aplicativo. A Figura 8 apresenta a tela de login. Figura 8 – Login Caso o usuário informe um e-mail ou senha inválido, lhe é apresentada uma mensagem 33 informando que não foi possível autenticar-se no aplicativo. Caso o e-mail e a senha informada estejam cadastrados no aplicativo, a autenticação é realizada com sucesso e o usuário acessa o menu padrão do aplicativo. Todos os usuários possuem as mesmas permissões de acesso. 3.3.2.2 Menus da página inicial Após a realização do login na aplicação, todo usuário é direcionado para tela inicial. A aplicação exibe o nome do usuário com mensagem de boas vindas. Na Figura 9 pode-se observar como exemplo um acesso. Figura 9 – Página Inicial A lista de menu apresenta todas as opções por onde os usuários podem navegar. A lista é estática e pode ser vista em todas as páginas, possibilitando ao usuário acesso imediato aos menus “Alterar os meus dados”, “Cadastro de erros conhecidos” e “Buscar”. 3.3.2.3 Cadastro de usuários Através da tela de Cadastro de Usuários, os usuários não autenticados devem ser cadastrados para acessar o aplicativo, bastando preencher os campos conforme Figura 10. 34 Figura 10 – Cadastro de usuários Caso o usuário já esteja autenticado, pode-se clicar em “Alterar os meus dados” conforme Figura 10 e os dados são exibidos permitindo então alterar as informações. Para salvar as alterações basta clicar sobre o botão “Confirmar”. 3.3.2.4 Cadastro de erros conhecidos Na tela de cadastro de erros conhecidos são cadastrados os erros conhecidos e suas soluções. A Figura 11 apresenta os campos necessários para o cadastramento onde: a) campo “Página do MU” é uma referência à página do manual do usuário do sistema; b) campo “Grupo” armazena informações referentes à categoria dos erros conhecidos; c) campo “Erro conhecido” é a descrição do erro conhecido; d) campo “Solução” é a forma de resolver o erro conhecido da melhor maneira já conhecida. O aplicativo aplica a técnica de text mining no texto digitado no campo “Erro conhecido”, quando o usuário realiza o cadastro e grava o resultado no banco de dados já formatado. No campo “Solução” é registrada a melhor forma já conhecida de como o erro conhecido pode ser solucionado. Estas soluções são apresentadas na Figura 14. 35 Figura 11 – Cadastro de erro conhecido em branco Na Figura 12 apresenta-se a tela de cadastro de erros conhecidos com um exemplo de erro conhecido preenchido. 36 Figura 12 – Cadastro de erro conhecido preenchido Ao clicar em “Cadastrar” é executada a técnica de text mining no texto digitado no campo “Erro conhecido”, desenvolvida com base nos passos de Wives, (2004) e Figura 2. O resultado é registrado no banco de dados para possível posterior comparação na hora de buscar soluções conhecidas. 3.3.2.5 Busca de soluções A Figura 13 apresenta a tela que possibilita que os usuários façam a busca das soluções já registradas no banco de dados utilizando a técnica de text mining, um dos objetivos específicos deste trabalho. Basta digitar o texto desejado e clicar no botão “Buscar”. 37 Figura 13 - Buscar soluções Após clicar no botão “Buscar” o aplicativo executa as técnicas de text mining sobre o que foi digitado no campo “Buscar” (Figura 13), semelhante ao que é feito ao cadastrar o erro conhecido. O resultado deste primeiro filtro é comparado com as informações cadastradas no cadastro de erros conhecidos (Figura 12) e se houverem soluções conhecidas compatíveis no banco de dados, são apresentadas conforme Figura 14 a seguir. 38 Figura 14 – Resultados da busca Estes resultados são apresentados em ordem decrescente, de acordo com o campo “% de acerto”, que apresenta a relevância do texto digitado pelo usuário em comparação com as soluções encontradas. 3.3.2.6 Detalhes das soluções cadastradas Após fazer a busca por soluções, é permitido aos usuários atualizar o texto da solução cadastrada, clicando no botão “Ver Detalhes”, visível na Figura 14. Desta forma permite-se aos próprios usuários do setor de suporte a atualização das soluções conhecidas, conforme 39 objetivo específico. Tela para atualização dos erros conhecidos visível na Figura 15. Figura 15 – Atualizar soluções Todos os campos na tela são editáveis bastando clicar no botão “Alterar” para confirmar a alteração e “Excluir” para eliminar o erro conhecido do banco de dados. 3.3.2.7 Percentual de relevância dos resultados O terceiro objetivo específico pode ser conferido na Figura 16. Destacado está o percentual de relevância da solução apresentada para a pergunta proposta. Estes resultados são apresentados em ordem decrescente, auxiliando o usuário do setor de suporte na tomada de decisão. 40 Figura 16 – Relevância dos resultados 3.3.2.8 Código fonte da aplicação Parte do código fonte referente ao desenvolvimento e uso da técnica de text mining, utilizada nas Figuras 12, 14, e 16 é explicado através dos Quadros 3, 4, 5, 6 e 7 que seguem. O método “limpaTermos” , apresentado no Quadro 3, é utilizado para realizar o passo número dois da técnica de Wives (2004) - Stopwords, apresentada na Figura 2. Neste método são removidos as preposições, artigos, advérbios e pronomes com a ajuda do framework LingPipe. 41 Quadro 3 – Stopwords (palavras desnecessárias) O método “derivações” é utilizado para realizar o passo três da técnica de Wives (2004) – Stemmer, apresentada na Figura 2. Neste método as palavras são transformadas para o seu radical conforme Quadro 4. Quadro 4 – Stemmer (derivações) O método “conceituação” é utilizado para realizar o passo cinco da técnica de Wives (2004) - Conceitos apresentada na Figura 2. Neste método é realizada a conceituação das palavras, caso existam no mapa de conceitos, conforme Quadro 5. 42 Quadro 5 – Conceitos O método “limpar” é o método principal do text mining. Este método invoca outros métodos que fazem a mineração do texto e é utilizado nas execuções das telas apresentadas nas Figuras 12 e 14. O método é apresentado no Quadro 6. Quadro 6 – Text mining No Quadro 7 encontra-se o método que faz o cálculo de percentual de relevância dos resultados. É feita uma comparação entre o termo buscado na Figura 14 com a descrição dos 43 erros conhecidos da Figura 12. Em ambas as informações já foram efetuadas as técnicas de text mining, permitindo a comparação exata dos termos. É então feita uma contagem dos termos que coincidem e um cálculo para extrair o percentual de acerto é efetuado. Quadro 7 – Percentual de relevância Aplicando a técnica de text mining no erro conhecido cadastrado na Figura 12, os passos descritos por Wives (2004) são mostrados nos Quadros 8, 9, 10 e 11. Primeiro passo, texto normal (original) no Quadro 8. Quadro 8 – Texto original No Quadro 9 o passo dois da Figura 2, são retiradas as preposições, advérbios, pronomes e artigos. Quadro 9 - Stopwords No Quadro 10 o passo três e quatro da Figura 2, onde as palavras são transformadas no seu radical. Quadro 10 - Radicalização No Quadro 11 foi realizada a conceituação das palavras, seguindo os passos cinco, seis e sete da Figura 2. Quadro 11 – Conceituação Os passos oito e nove da Figura 2 não foram desenvolvidos no aplicativo por não serem relevantes para a necessidade dos usuários, que já foram atingidas através dos passos 1 a 7 da Figura 2 de Wives (2004). 44 Com o desenvolvimento do text mining neste aplicativo e sua utilização demonstrada conforme as figuras e quadros da subseção 3.3.2, concretiza-se o objetivo de satisfazer as necessidades dos usuários em cadastrar, atualizar e buscar os erros conhecidos através de um aplicativo web e help desk. O mecanismo de busca através da técnica de text mining foi funcional no processo de encontrar soluções conhecidas, melhorando o processo de trabalho dos usuários. 3.4 RESULTADOS E DISCUSSÃO O desenvolvimento deste trabalho resultou em um aplicativo help desk e web de apoio aos profissionais do setor de suporte, fornecendo aos mesmos a possibilidade de construir uma base de conhecimentos com os erros conhecidos, suas soluções e permitindo encontrá-las de forma eficaz utilizando a técnica de text mining, agilizando e melhorando o processo de trabalho. Ao possibilitar o gerenciamento das soluções conhecidas, o aplicativo garante que o conhecimento não seja esquecido ou expressado de formas fora do padrão da empresa. O fato de as informações ficarem armazenadas em uma base de dados confere um suporte de qualidade. Relacionando o aplicativo com o processo de trabalho, o objetivo principal do trabalho foi alcançado assim como seus objetivos específicos, pois pode-se observar que o aplicativo forneceu o apoio almejado nos objetivos ao setor de suporte ao cliente, aplicando gestão do conhecimento e a técnica de text mining para a pesquisa de soluções conhecidas. Para desenvolver o aplicativo foram utilizados recursos open-source (fontes livres), como a linguagem Java, IDE Eclipse, banco de dados Hibernate e frameworks GWT e LingPipe. Isto torna sua implantação viável tanto para a empresa interessada como para qualquer outra. Pelo fato de ser desenvolvido em Java, não necessita de investimentos extras em infraestrutura ou sistemas pagos. A técnica de text mining em si permite muita versatilidade na filtragem de dados, sendo possível configurar o aplicativo para servir em outras áreas de negócios. Quanto aos trabalhos correlatos a este, o diferencial deste encontra-se em ser uma aplicação que proporciona gestão do conhecimento, criação de um repositório de informações e voltada a aumentar a qualidade do suporte prestado através de buscas eficazes. Os trabalhos citados possuem objetivos comuns entre a aplicação desenvolvida, cuja finalidade é buscar de 45 resultados relevantes e precisos de forma automatizada para os usuários. Wilvert (2005) utilizou a técnica de RBC para fazer a busca por soluções similares a novas ocorrências, enquanto neste trabalho foi explorado o potencial da técnica de text mining. Já Fink (2010), utilizou gestão do conhecimento e text mining para classificação de erros conhecidos no setor de service desk, precisando usar um modelo de referência (ITIL), enquanto este trabalho focou nas necessidades dos usuários. Selbach (2010) utilizou gestão do conhecimento e data mining com o objetivo de gerar conhecimento para tomada de decisões gerenciais e relatórios específicos para administradores, não diretamente para os usuários ou o cliente final como neste trabalho. A técnica de data mining no trabalho de Selbach é voltada para números e dados, e não texto e informação. Para validar a aderência do aplicativo com as expectativas dos usuários, foi aplicado um questionário para os seis usuários da empresa. As perguntas foram desenvolvidas com base na norma da International Organization for Standardization / International Electrotechnical Commission (ISO/IEC). A norma ISO 9126 refere-se à funcionalidade do aplicativo em relação aos objetivos específicos, ao cadastramento de erros conhecidos, a sua busca, a atualização e o percentual de relevância de cada resultado (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2003). De forma geral, os questionados se mostraram satisfeitos com o aplicativo apresentado, comentando a usabilidade, simplicidade das telas além da grande utilidade no dia-a-dia da empresa. Foi citado que não obtiveram dificuldades para a utilização da ferramenta, porém sugeriram algumas melhorias que serão comentadas na seção 4.1 Extensões. Os resultados do questionário são apresentados na sequência. Nos gráficos a seguir apresentam-se as primeiras três perguntas do questionário aplicado. As perguntas são pertinentes à funcionalidade do aplicativo e as respostas de todos questionados foram positivas. Conforme apresentado nas Figuras 17, 18 e 19. 46 Figura 17 – Cadastrar erro conhecido Figura 18 – Buscar erro conhecido 47 Figura 19 – Satisfação do resultado A Figura 20 apresenta a quarta pergunta do questionário, onde a houve uma resposta negativa quanto à precisão do grau de relevância. Ao cadastrar dois erros conhecidos com sutis diferenças em seu enunciado e fazer a busca por um destes enunciados (exatamente como cadastrado), as soluções apresentadas pelo aplicativo tinham o mesmo grau de relevância, 88%. Porém o usuário alegou que uma delas devia ter 100% e a outra aproximadamente 80%, por isto avaliou como inadequado o percentual de relevância apresentado pelo aplicativo. Figura 20 – Percentual de relevância A pergunta cinco é relevante ao objetivo específico de permitir que os erros conhecidos sejam atualizados pelos próprios usuários. A pergunta seis quanto à adequação do software, que mede o quanto o conjunto de funcionalidades é adequado às necessidades do 48 usuário. Ambas atenderam as expectativas dos usuários, conforme Figuras 21 e 22. Figura 21 – Atualizar os erros conhecidos Figura 22 – Adequação do aplicativo Algumas sugestões foram solicitadas pelos usuários na questão de adequação, não essenciais para o funcionamento e implantação do aplicativo, mas adendos vistos como interessantes pelos usuários. Os mesmos foram adicionados na seção 4.1 Extensões. A resposta à pergunta número sete é interessante, pois conforme citado no item 2.5 Sistema Atual, atualmente os usuários já trabalham com um sistema. Este sistema identifica os clientes que entram em contato e através dele é registrado o que foi falado ao cliente, como forma de histórico para consulta posterior. Portanto o aplicativo que foi testado e desenvolvido neste trabalho precisou coexistir com este sistema de identificação de clientes, já implantado. Na Figura 23 o gráfico pertinente à pergunta sete. 49 Figura 23 – Coexistência do aplicativo Exceto para um usuário, a coexistência é funcional. Foi comentado que poderia haver uma integração, de forma que o aplicativo estivesse integrado ao sistema de identificação de clientes para não precisar alternar entre ambos (sistema e aplicativo) durante o atendimento. Na Figura 24 a pergunta imposta aos usuários foi na questão da usabilidade, ou seja, a capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário. Todos participantes avaliaram a usabilidade como funcional e adequada. Figura 24 – Usabilidade 50 A pergunta nove, última do questionário é apresentada na Figura 25. As respostas negativas quanto ao quesito “comportamento em relação ao tempo adequado ao trabalho” se deveram ao fato de que ao ser executado a primeira vez, o aplicativo demora quase um minuto para ser carregado, pois é necessário ao processador do computador e a IDE: a) compilar o aplicativo; b) converter a programação Java em HyperText Markup Language (HTML), Cascading Style Sheets (CSS) e Java Script para abrir no navegador web; c) carregar os índices e classes na memória de forma estática. Depois que o aplicativo foi aberto pela primeira vez, o tempo de resposta dentro dele é instantâneo e não houve reclamações quanto a isto. Porém, pelo fato de não estar integrado com o outro sistema atualmente utilizado, os usuários que avaliaram negativamente este ponto acabavam fechando o aplicativo logo após os atendimentos, exigindo que fosse carregado novamente ao atender outros clientes e assim gerando insatisfação quanto ao desempenho. Figura 25 – Tempo x Trabalho 51 4 CONCLUSÕES O objetivo deste trabalho foi criar um aplicativo que auxiliasse e melhorasse o processo de atendimento do setor de suporte aos clientes. Diante dos resultados apontados, todas as expectativas foram atingidas com a conclusão do mesmo. Conclui-se que todos os objetivos, tanto geral como específicos foram atingidos e acredita-se que será de grande valia para o ambiente profissional dos usuários, contribuindo diretamente no atendimento aos clientes e melhorando a qualidade dos atendimentos. Partindo do momento em que foi possível cadastrar e atualizar os erros conhecidos e posteriormente suas soluções padronizadas, os usuários criaram conhecimento e profissionalizaram o processo de trabalho. Pois enquanto anteriormente cada profissional de suporte tinha uma solução própria e por vezes inadequada ou não formatada para os erros conhecidos, agora as soluções são padronizadas e formatadas da melhor maneira possível, retornando aos clientes sempre a melhor solução possível. Utilizando as técnicas de text mining foi possível com sucesso executar buscas precisas no banco de dados criado pelos próprios usuários do aplicativo. Sendo assim o aplicativo tornou-se uma ferramenta de apoio aos profissionais do setor de help desk, pois não dependem mais de conhecimentos tácitos e da memória para instruir os clientes a resolver os erros conhecidos. Quanto à busca destas soluções através do text mining, foi um fator essencial no processo de trabalho, afinal, não bastaria apenas ter todos os erros conhecidos e soluções cadastradas se encontrá-las fosse um processo demorado e impreciso. Pelo fato do aplicativo filtrar os erros conhecidos cadastrados de forma eficaz, utilizando os passos de Wives (2004), a busca tornou-se ágil e eficaz, facilitando o trabalho dos profissionais de suporte. Apresentar nos retornos da busca o percentual de relevância do mesmo é importante, pelo fato de que poderão ser exibidos vários erros conhecidos parecidos no resultado na busca, porém com soluções distintas, então, para minimizar as eventuais indecisões ao se optar pela resposta, o percentual de relevância mostrou-se adequado e apreciado. As ferramentas utilizadas no desenvolvimento se mostraram suficientes e adequadas, sendo a principal característica a vantagem de serem gratuitas e open-source, havendo assim vasto material disponível para consulta na internet. As principais dificuldades encontradas foram a escolha de um framework adequado para o desenvolvimento em web. O trabalho de Wives (2004) foi essencial para o desenvolvimento da técnica de text mining em Java, utilizada pelo aplicativo. 52 A realização deste trabalho acresceu também o desenvolvimento pessoal, o conhecimento na parte técnica, exigindo muita pesquisa e revisão de disciplinas vistas no decorrer do curso de graduação. Conclui-se assim que o desenvolvimento desta aplicação foi um aprendizado válido e importante. 4.1 EXTENSÕES Quanto à implementação atual do sistema, alguns adendos foram sugeridos pelos usuários e outros stakeholders, como a possibilidade de importar dados (erros conhecidos) de outros bancos de dados como o Access, o Microsoft SQL, o Oracle, evitando assim o cadastramento manual dos erros conhecidos. Dentre as funcionalidades do aplicativo, a emissão de relatórios poderia ser implementada. Seriam relatórios com informações gerenciais, como por exemplo, quais os erros conhecidos com maior semelhança, quais os mais buscados, o número total de cadastrados. Quanto à usabilidade, seria interessante aos usuários a possibilidade de enviar por email a solução encontrada, diretamente pelo aplicativo. Um item que não foi desenvolvido, por não fazer parte do escopo do trabalho e não ter o suporte da empresa, e que poderá fazer parte de uma extensão é o uso do modelo ITIL para referência na melhora da qualidade dos processos. 53 REFERÊNCIAS BIBLIOGRÁFICAS ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC9126-1 Engenharia de software - Qualidade de produto - Parte 1: Modelo de qualidade. Rio de Janeiro, 2003. CAVALARI, Gabriel O.T.; COSTA, Heitor A. X. Modelagem e desenvolvimento de um sistema Help-Desk para a prefeitura municipal de Lavras – MG. 2005. 40 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) - Departamento de Ciência da Computação Universidade Federal de Lavras, Lavras. CORRÊA, Adriana C. G. Recuperação de documentos baseada em Informação Semântica no ambiente AMMO. 2003. 92 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) – Universidade Federal de São Carlos, São Carlos. Disponível em <http://www.bdtd.ufscar.br/tde_busca/arquivo.php?codArquivo=485>. Acesso em 11 maio 2012. DALFOVO, Oscar; TAMBORLIN, Norberto. Business Intelligence. Blumenau: Edição do Autor, 2010. DALFOVO, Oscar. Modelo de integração de um sistema de inteligência competitiva com um sistema de gestão da informação e de conhecimento. 2007. 234 f. Tese (Doutorado em Engenharia e Gestão do Conhecimento) - Área de Engenharia e Gestão do Conhecimento, Universidade Federal de Santa Catarina, Florianópolis. DALFOVO, Oscar. Sistemas de informação: Estudos e casos. O uso da informação pelos administradores e executivos que obtêm vantagem competitiva. Blumenau: Acadêmica, 2004. ECLIPSE. The Eclipse Foundation Open Source Community Web Site. [S.I.], 2012. Disponível em: <http://www.eclipse.org/>. Acesso em: 10 maio 2012. FERREIRA, Mônica A.; LOUREIRO, Carlos A.S. ; MARTINEZ, Maurício M. Estudo sobre a viabilidade de implantação de bases de conhecimento na Embrapa recursos genéticos e biotecnologia. Brasília, 2004. Disponível em: < http://kmol.online.pt/artigos/2004/11/01/baseconhecimento-embrapa >.Acesso em: 10 maio 2012. FIGUEIREDO, Saulo P. Gestão do Conhecimento a partir do e-mail. São Paulo, [2002]. Disponível em: <http://www.informal.com.br/artigos/a02052002_001.html>. Acesso em 10 maio 2012. FIGUEIREDO, Saulo P. Gestão do conhecimento: estratégias competitivas para a criação e mobilização do conhecimento na empresa. Rio de Janeiro: Qualitymark, 2005. 54 FINK, Carla A. Aplicação da técnica text mining para auxílio na classificação de erros conhecidos de service desk. 2010. 57 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) - Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. FURTADO, Maria I. V. Inteligência competitiva para o Ensino Superior: uma abordagem através da mineração de texto. 2004. 119 f. Tese (Doutorado em Engenharia Civil) – Área de Engenharia, Universidade Federal do Rio de Janeiro. Disponível em: <http://wwwp.coc.ufrj.br/teses/doutorado/inter/2004/Teses/FURTADO_MIV_04_t_D_int.pdf >. Acesso em: 18 abr. 2012. GOOGLE. Google Web Toolkit. [S.I], [2012]. Disponível em: https://developers.google.com/web-toolkit/terms?hl=pt-BR>. Acesso em 10 maio 2012. < HARTSYSTEM INFORMÁTICA LTDA. ProDent Software Odontológico. Blumenau, [2012]. Disponível em: <http://www.hartsystem.com.br>. Acesso em: 10 maio 2012. HIBERNATE. Why Hibernate. Raleigh, 2011. Disponível <http://www.hibernate.org/about/why-hibernate>. Acesso em: 10 maio 2012. em: HOESCHL, Hugo. C; BUENO, Tânia. C. D.; BORTOLON, André S. AlphaTemis - Do texto ao conhecimento. 2002. 111 f. Programa de Pós- Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis. LINGPIPE. Home Page. [S.I.], [2012]. Disponível em: < http://alias-i.com/lingpipe/>. Acesso em: 10 maio 2012. MARTINS, André. Computação baseada em casos: Contribuições metodológicas aos modelos de indexação, avaliação, ranking, e similaridade de casos. Campina Grande: UFP, 2000. 193 f. Tese (Doutorado em Engenharia Elétrica) - Universidade Federal da Paraíba, Campina Grande. NONAKA, Ikujiro.; TAKEUCHI, Hirotaka. Criação de conhecimento na empresa. Rio de Janeiro: Campus, 1997. ORACLE. Java: The Best Environment for Network-Based Applications. Redwood Shores. [S.I.], 2010. Disponível em: < http://www.oracle.com/us/technologies/java/10045230-br-javac17307-187867.pdf >. Acesso em: 10 maio 2012. PROBST, Gilbert.; RAUB, Steffen.; ROMHARDT, Kai. Gestão do conhecimento, os elementos construtivos do sucesso. Porto Alegre: Bookman, 2002. SELBACH, Frederico C. Sistema web para auxílio em pesquisas e gerência de dados clínicos. 2010. 65 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Instituto de Informática, Universidade Federal do Rio Grande do Sul, Porto Alegre. Disponível em <http://www.lume.ufrgs.br/handle/10183/28337>. Acesso em 11 maio 2012. 55 SILVA, Jaime J. Help Desk com sistema RBC para as gerências de aplicativos do Banco do Brasil. 2004. 45 f. Trabalho de Conclusão de Curso (Curso de Especialização e Desenvolvimento, Segurança e Qualidade a Internet) - Instituto de Informática, Universidade Federal do Rio Grande do Sul, Porto Alegre. STATDLOBER, Juliano. Help Desk e SAC com qualidade. Rio de Janeiro: Brasport, 2006. THESAUROS. Thesaurus.com | Find Synonyms and Antonyms of words. [S.I.], 2012. Disponível em < http://thesaurus.com/ >. Acesso em 04 jul 2012. WEHRMEISTER, Janira. Sistema de conhecimento em Help Desk utilizando raciocínio baseado em casos para apoio aos clientes e consultores de softhouse na web. 2008. 74 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) - Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. WILVERT, Carla. Sistema de apoio a Help Desk utilizando gestão do conhecimento e técnica de raciocínio baseado em casos. 2005. 72f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) - Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. WIVES, Leandro K. Utilizando conceitos como descritores de textos para o processo de identificação de conglomerados (clustering) de documentos. 2004. 136 f. Tese (Doutorado no Programa de Pós-Graduação em Computação) - Instituto de Informática, Universidade Federal do Rio Grande do Sul, Porto Alegre. 56 APÊNDICE A – Descrição dos Casos de Uso Este Apêndice apresenta a descrição dos casos de uso conforme previstos nos diagramas apresentados na subseção 3.3.1. UC01 Cadastrar usuários Permite ao cadastrar um novo usuário do aplicativo, bem como alterar ou excluir informações do usuário. UC02 Exigir login e senha É necessário que o usuário esteja previamente cadastrado e possua uma senha de acesso próprio para acessar o aplicativo. UC03 Cadastrar os erros conhecidos e sua solução Permite ao profissional de suporte incluir os erros conhecidos pelo setor de help desk da empresa, viabilizando a consulta por informações quaisquer do erro conhecido. É necessário preencher a descrição do “erro conhecido”, página do MU” e “solução”. Constraints Pré-condição . O usuário solicitante deve estar cadastrado no aplicativo. Pós-condição . Um erro conhecido foi incluído no aplicativo. Cenários Incluir erro conhecido {Principal}. 1. O profissional de suporte solicita cadastro de erro conhecido; 2. O aplicativo apresenta tela para registro de erro conhecido; 3. O profissional de suporte informa os dados de um novo erro conhecido; 4. O profissional de suporte clica em CADASTRAR; 5. O aplicativo grava as informações. UC04 Atribuir categorias Permite ao profissional de suporte atribuir a categoria correta para cada erro conhecido cadastrado. Cada erro conhecido só pode ter uma categoria. É necessário estar previamente cadastrada. UC05 Pesquisar as soluções Permite ao profissional de suporte fazer a pesquisa a partir de um termo na base de dados de conhecimento. O aplicativo utilizará a técnica de text mining para pesquisar as informações e apresentar na tela. Após apresentadas, é possível altera-las ou excluí-las. Constraints Pré-condição . O usuário solicitante deve estar cadastrado no aplicativo. Pós-condição . Uma(s) solução(s) foi(ram) ou não encontrada(s). Pós-condição . Solução(s) foi(ram) atualizadas(s) ou excluída(as) Cenários Pesquisa solução {Principal}. 1. O profissional de suporte clica em Buscar; 57 2. O aplicativo apresenta tela para busca de erros conhecidos; 3. O profissional de suporte escreve no campo de pesquisa o erro conhecido; 4. O profissional de suporte clica em Buscar; 5. O aplicativo, a partir da digitação, faz a busca no banco de dados pelo termo semelhante e apresenta as soluções encontradas e seu grau de relevância; 8. O profissional de suporte pode copiar o conteúdo, e então explicar para o cliente. 9. O profissional de suporte, se desejar, pode clicar em “Alterar” para editar o cadastro da solução ou excluir. 10. O profissional de suporte clica em “Alterar”, para confirmar as alterações. Solução não localizada {Exceção} No passo 5, caso o aplicativo não encontre solução/erro conhecido correspondente ao termo pesquisado, não apresentará nenhum resultado na tela. Alterar erro conhecido {Alternativo}. No passo 9, o profissional de suporte pesquisa um erro conhecido; 9.1. O aplicativo apresenta os dados; 9.2. O profissional de suporte edita os dados e seleciona ALTERAR; 9.3. O aplicativo altera os dados do erro conhecido. Excluir erro conhecido {Alternativo}. No passo 9, o profissional de suporte seleciona um erro conhecido e clica em alterar; 9.1. O aplicativo apresenta os dados; 9.2. O profissional de suporte seleciona EXCLUIR; 9.3. O aplicativo exclui o erro conhecido do banco de dados. UC06 Apresentar grau de relevância Ao apresentar o resultado da pesquisa o aplicativo deve apresentar também o grau de relevância da resposta mediante o termo pesquisado pelo usuário.