UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA DE HELP DESK BASEADO EM RBC Área de Inteligência Artificial por Tharso de Souza Ferreira Rudimar Luís Scaranto Dazzi, Dr. Orientador Itajaí (SC), julho de 2008 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA DE HELP DESK BASEADO EM RBC Área de Inteligência Artificial por Tharso de Souza Ferreira Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: Rudimar Luís Scaranto Dazzi, Dr. Itajaí (SC), julho de 2008 SUMÁRIO LISTA DE ABREVIATURAS ..................................................................iv LISTA DE FIGURAS ................................................................................. v LISTA DE TABELAS ...............................................................................vi RESUMO .................................................................................................. vii ABSTRACT ............................................................................................. viii 1 INTRODUÇÃO ...................................................................................... 9 1.1 PROBLEMATIZAÇÃO .................................................................................... 11 1.1.1 Formulação do Problema ............................................................................... 11 1.1.2 Solução Proposta ............................................................................................. 11 1.2 OBJETIVOS....................................................................................................... 11 1.2.1 Objetivo Geral ................................................................................................. 11 1.2.2 Objetivos Específicos....................................................................................... 12 1.3 METODOLOGIA .............................................................................................. 12 1.4 ESTRUTURA DO TRABALHO ...................................................................... 12 2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 13 2.1 HELP DESK ....................................................................................................... 13 2.2 INTELIGÊNCIA ARTIFICIAL ...................................................................... 15 2.2.1 História ............................................................................................................. 16 2.3 RACIOCÍNIO BASEADO EM CASOS .......................................................... 17 2.3.1 Histórico ........................................................................................................... 19 2.3.2 Elementos Básicos do RBC ............................................................................. 20 2.3.3 Funcionamento de um RBC ........................................................................... 21 2.3.4 Representação de um Caso ............................................................................. 22 2.3.5 Similaridade ..................................................................................................... 24 2.3.6 Adaptação......................................................................................................... 29 2.3.7 Aprendizado ..................................................................................................... 30 2.4 SISTEMAS SIMILARES .................................................................................. 32 2.4.1 Fireman Professional ...................................................................................... 32 2.4.2 HelpDesk-3 ....................................................................................................... 35 2.4.3 Automidia CBR ............................................................................................... 37 2.4.4 Análise de ferramentas similares ................................................................... 39 3 PROJETO ............................................................................................. 40 3.1 ANÁLISE DE REQUISITO ............................................................................. 42 3.1.1 Requisitos Funcionais ..................................................................................... 42 3.1.2 Requisitos não funcionais ............................................................................... 43 3.1.3 Regras de negócio ............................................................................................ 43 3.2 MODELAGEM DO SISTEMA ........................................................................ 44 ii 3.2.1 Diagrama de casos de uso ............................................................................... 44 3.2.2 Diagrama de classes ........................................................................................ 55 3.2.3 Diagrama Entidade-Relacionamento (ER) ................................................... 62 3.2.4 Diagrama de seqüência ................................................................................... 63 3.3 TECNOLOGIAS UTILIZADAS NO PROJETO........................................... 67 3.4 INTERFACE DO SISTEMA ............................................................................ 68 3.5 TESTES .............................................................................................................. 81 4 CONCLUSÃO ...................................................................................... 83 REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 84 iii LISTA DE ABREVIATURAS CBR DHCP DNS ER IP PHP RBC SE SQL TCC UFRGS UFSC UML UNIVALI Case Based Reasoning Dynamic Host Configuration Protocol Domain Name System Entidade Relacionamento Internet Protocol Hypertext Preprocessor Raciocínio Baseado em Casos Sistemas Especialistas Structured Query Language Trabalho de Conclusão de Curso Universidade Federal do Rio Grande do Sul Universidade Federal de Santa Catarina Unified Modeling Language Universidade do Vale do Itajaí iv LISTA DE FIGURAS Figura 1. As divisões do processo do RBC. ...................................................................................... 18 Figura 2. Ciclo do Raciocínio Baseado em Casos. ............................................................................ 22 Figura 3. O Ciclo RBC – Versão mais Analítica ............................................................................... 23 Figura 4. Abertura de um chamado. .................................................................................................. 33 Figura 5. Abertura de um chamado via Web. .................................................................................... 34 Figura 6. Criação da Base de conhecimento...................................................................................... 35 Figura 7. Abertura de chamados via web. ......................................................................................... 36 Figura 8. Busca por problemas já conhecidos. .................................................................................. 37 Figura 9. Automidia Change Management - Interface Web para os Analistas. ................................ 39 Figura 10. Projeto visão do usuário. .................................................................................................. 41 Figura 11. Caso de Uso do Administrador. ....................................................................................... 44 Figura 12. Caso de Uso do Usuário. .................................................................................................. 52 Figura 13. Diagrama de classes. ........................................................................................................ 56 Figura 14. Diagrama Entidade Relacionamento (ER). ...................................................................... 63 Figura 15. Configuração de usuário. ................................................................................................. 64 Figura 16. Configura Casos. .............................................................................................................. 65 Figura 17. Consultar Casos. ............................................................................................................... 66 Figura 18. Tela de Login. .................................................................................................................. 68 Figura 19. Tela de apresentação do módulo administrador. .............................................................. 69 Figura 20. Tela de consulta de problemas cadastrados. .................................................................... 70 Figura 21. Tela de cadastro de categorias.......................................................................................... 71 Figura 22. Tela de cadastro de estrutura de produto.......................................................................... 72 Figura 23. Tela de cadastro de caso. .................................................................................................. 73 Figura 24. Tela de configuração de usuários. .................................................................................... 74 Figura 25. Tela de alteração dos dados do usuário. ........................................................................... 75 Figura 26. Tela de cadastro de usuário. ............................................................................................. 76 Figura 27. Tela de alteração de senha................................................................................................ 77 Figura 28. Tela de apresentação do módulo do usuário. ................................................................... 78 Figura 29. Tela de consulta solução. ................................................................................................. 79 Figura 30. Tela de consulta histórico................................................................................................. 80 Figura 31. Tela de alteração de senha................................................................................................ 81 v LISTA DE TABELAS Tabela 1. Análise de Ferramentas Similares ..................................................................................... 39 Tabela 2. Descrição das tabelas de dados. ......................................................................................... 57 Tabela 3. Dicionário de Dados da Tabela Casos. .............................................................................. 58 Tabela 4. Dicionário de Dados da Tabela Caso_problema. .............................................................. 58 Tabela 5. Dicionário de Dados da Tabela Chamado. ........................................................................ 59 Tabela 6. Dicionário de Dados da Tabela Problema. ........................................................................ 59 Tabela 7. Dicionário de Dados da Tabela Status. .............................................................................. 59 Tabela 8. Dicionário de Dados da Tabela Categoria. ........................................................................ 60 Tabela 9. Dicionário de Dados da Tabela Conjunto. ......................................................................... 60 Tabela 10. Dicionário de Dados da Tabela Conj_obj. ....................................................................... 60 Tabela 11. Dicionário de Dados da Tabela Objeto. ........................................................................... 60 Tabela 12. Dicionário de Dados da Tabela Conj_prob. .................................................................... 61 Tabela 13. Dicionário de Dados da Tabela prob_status. ................................................................... 61 Tabela 14. Dicionário de Dados da Tabela Usuário. ......................................................................... 62 vi RESUMO FERREIRA, Tharso de Souza. Sistema de Help Desk Baseado em RBC. Itajaí, 2008. 68 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2008. Com os avanços tecnológicos no começo do século XXI, alguns itens como o computador e a Internet tornaram-se fatores essenciais na vida de qualquer pessoa, muito mais que a televisão, que até alguns anos era campeã nessa liderança. Com o aumento da utilização de tais recursos, a quantidade de problemas sobre eles aumentou consideravelmente, assim como a rapidez e a importância na resolução dos mesmos. Para o suporte nessa área, uma área que se tornou importante é a do help desk, porém são profissionais que muitas vezes fazem a utilização do tempo para resolução de problemas semelhantes ou até mesmo iguais, enquanto de outra forma poderiam dedicar esse tempo a novos problemas ou outras situações. Essa necessidade motivou ao desenvolvimento de um sistema que permitisse ao usuário um contato direto com as soluções dos profissionais de help desk sem a utilização direta do seu tempo. A característica principal do sistema é a utilização do conhecimento adquirido em situações anteriores, assim sendo problemas podem ser utilizado com base nas novas utilizações do sistema. Com a utilização do Raciocínio Baseado em Casos (RBC), uma técnica de Inteligência Artificial, casos anteriormente são recuperados e comparados por processos de similaridade com o problema atual e com os problemas eficazmente resolvidos no passado. Palavras-chave: RBC. Inteligência Artificial. Help Desk. vii ABSTRACT With the technological advances at the beginning of the twenty-first century, some items of the computer and Internet have become essential in every person´s life, even more than television, that until some years ago was the champion of the electronic sector. Because the increase of operation of these resources, the quantity of problems about the electronic systems also have risen considerably just like the speed and importance of the resolution of these products. To the support of this area, the Help Desk has gotten importance, although the professionals of this area are the ones who use their time solving similar or even equal problems, while they could use this time to new problems or different situations. This need has motivated the development of a system that allows the user a direct contact with the solutions of the Help Desk professionals without using all their time. The main characteristic of the system is the use of the knowledge acquired in the past situations, so the problems may be used as basis for the new cases. With the use of Reasoning Based on Cases (RBC), a technical of Artificial Intelligence, past cases are recovered and compared by processes of similarity between the actual problem and problems effectively solved in the past. Keywords: Reasoning Based on Cases. Artificial Intelligence. Help Desk. viii 1 INTRODUÇÃO No início do século XXI, as centrais de atendimento já possuíam a capacidade de executar determinados serviços sem a intervenção humana, poupando recursos e dedicação para os mesmos. Ainda assim, existem resoluções para determinados problemas e ações no sistema que são muito complexas para serem automatizadas. Qualquer empresa que tenha seu próprio Help Desk, ou seja, um serviço de apoio ao usuário para suporte de problemas técnicos, lidam todos os dias com um imenso número de chamados, sobre diversas dúvidas. Entretanto em sua grande maioria, essas chamadas são semelhantes ou até mesmo iguais. Desta forma o deslocamento de um técnico e a atenção dada a essas dúvidas gera um consumo de tempo e recurso humano desperdiçado equivocadamente, além dos gastos com deslocamento e a utilização de meios de telecomunicação, como telefone, largamente utilizado pelas empresas. Grande parte das dúvidas geradas são simples e podem ser resolvidas pelo próprio usuário. Estas são dúvidas cotidianas ou utilizações incorretas, e que consomem de alguma forma, recursos da empresa que podem ser empregados em outro setor. No caso de um provedor de Internet, este arca diariamente com dúvidas simples, tais como problemas de navegação. Grande parte desses problemas podem ser resolvido simplesmente com a configuração de um DNS (Domain Name System - Sistema de Nomes de Domínios), conexão nula ou limitada, que pode ser resolvido efetuando a configuração de um IP (Internet Protocol), problemas de acesso a programas de Chat de conversa, que muitas vezes podem ser solucionadas com a correção do calendário e relógio do computador. Para dispositivos de hardware, placa de rede desativada, cabo de rede desconectado, programa da interface de rede instalado incorretamente, geram o mesmo problema de dificuldade na navegação, mais abordados de forma diferente. Muitos usuários no ímpeto do momento, ao se depararem com dificuldade ao acessar um determinado domínio na Internet chegam à conclusão que não existe sinal, sem ao menos tentar efetuar a navegação em outros domínios. Partindo do princípio que endereços na internet estão hospedados em servidores diferentes, ou seja, com disponibilidades diferentes, a dificuldade em acessar um domínio na internet não pode 9 torna-se uma obrigatoriedade para o acesso aos outros domínios. Dessa forma freqüentes problemas de navegação podem ser solucionados tentando acessar domínios totalmente opostos. Estes são problemas que o usuário por si mesmo tem a opção de resolver no mesmo instante e sozinho, apenas com a indicação de uma direção para a solução. Na grande maioria dos casos, porém a empresa provedora de serviços de Internet se vê obrigada a abrir um chamado para aquele problema, solicitando até mesmo um prazo de 24 a 48 horas para a conclusão, sendo este um procedimento considerado padrão entre os provedores de serviço de Internet. A união da grande quantidade de chamadas e os prazos praticados pelas empresas provedoras de serviços de internet torna o atendimento ao usuário demorado. Uma estratégia para solucionar o problema dos atendimentos é a criação de um Sistema de help desk, que se constitui de uma aplicação composta de técnicas de RBC (Raciocínio Baseado em Casos). O funcionamento de todo o sistema está baseado em perguntas e respostas, onde as dúvidas do usuário são consultadas em uma base de dados e usando-se uma métrica pré-estabelecida, retorna com uma resposta semelhante ao questionamento do usuário. O sistema de help desk deve ser de fácil usabilidade e fácil acesso, desenvolvido diretamente para usuários que possuem os mínimos conceitos sobre informática. Quando um novo problema é encontrado, o RBC relembra casos similares e adapta as soluções que funcionaram no passado ao problema corrente. Subjacente a este enfoque está a suposição de que problemas cuja descrição possui formas similares apresentam soluções similares. Conseqüentemente soluções de problemas prévios similares ao atual torna-se um ponto de partida útil para soluções de um novo problema (WANGENHEIM e WANGENHEIM, 2003). O sistema em questão não possui o intuito de substituir os meios convencionais de suporte e solução aos problemas do usuário, mas sim, agregar valor, tornando o serviço de Help Desk já existente mais eficaz e eficiente. Este projeto de pesquisa também se justifica em nível de Trabalho de Conclusão de Curso para o Curso de Ciência da Computação, por se tratar do desenvolvimento de uma solução computacional que faz o uso de conceitos e teorias como as citadas anteriormente. 10 1.1 PROBLEMATIZAÇÃO 1.1.1 Formulação do Problema Os profissionais que trabalham diariamente com atendimento ao cliente e com a solução de dificuldades relacionados a problemas computacionais, tem que lidar com uma gama extensa de conhecimentos. Entretanto pela infinidade de situações, muitos desses conhecimentos se perdem com o passar do tempo e o desgaste do profissional em continuar armazenando situações com a sua própria prática. Muitos desses conhecimentos podem ser reutilizados visto que fazem parte de situações iguais ou até mesmo similares, retornando para o usuário uma solução mais rápida e mais precisa. 1.1.2 Solução Proposta A solução proposta baseia-se em uma técnica de Inteligência Artificial denominada Raciocínio Baseado em Casos, visando melhoria do atendimento e resolução do problema pelo especialista. Por se tratar de um sistema web, a interface permite a interação do usuário com o especialista, evitando assim que problemas simples, de fácil resolução possam comprometer o tempo de atendimento ao usuário. Desta forma o especialista tem mais tempo disponível para o atendimento do próximo usuário, otimizando o tempo de atendimento e a qualidade do serviço. 1.2 OBJETIVOS 1.2.1 Objetivo Geral O objetivo geral deste projeto é desenvolver um sistema de Help Desk, usando Raciocínio Baseado em Casos para auxiliar no atendimento dos clientes no setor de suporte de um provedor de internet situado na cidade de Balneário Camboriú. 11 1.2.2 Objetivos Específicos • Pesquisar e analisar soluções similares; • Determinar os principais requisitos exigidos pelo sistema; • Compreender as metodologias utilizadas para o desenvolvimento de um sistema RBC; • Pesquisar e definir parâmetros para o RBC; • Pesquisar e definir as tecnologias necessárias para a implementação do sistema; • Realizar a modelagem conceitual do sistema; • Implementar o sistema; • Testar e validar o sistema; e • Documentar o desenvolvimento e os resultados do sistema. 1.3 Metodologia Para o desenvolvimento da fundamentação teórica, foram realizadas pesquisas visando entender conceitos e metodologias envolvidas no processo de tratamento de informações de um sistema Help Desk, conhecer o método de Raciocínio Baseado em Casos tais como ferramentas necessárias ao desenvolvimento web. As pesquisas se fundamentaram em livros, artigos científicos, sites na Internet que abordam o assunto e trabalhos acadêmicos. Em uma segunda etapa do trabalho, foi realizada a análise do sistema, usando UML (Unified Modeling Language) para diagramar o modelo proposto. As demais etapas serão descritas no TCCII. 1.4 Estrutura do trabalho O trabalho está dividido em quatro capítulos: Introdução, Fundamentação Teórica, Projeto e Considerações Finais. 12 O primeiro capítulo apresenta uma breve introdução sobre o tema, descrevendo o problema e apresentando uma solução. Também foi feita uma discussão sobre como os objetivos devem ser trabalhados para que até o fim do desenvolvimento do trabalho os mesmos possam ser alcançados. No segundo capítulo é apresentado um estudo mais aprofundado sobre os temas que serão abordados no trabalho. Inicia-se apresentando um estudo sobre a Inteligência Artificial, mais especificamente sobre o Raciocínio Baseado em Casos, que é a técnica utilizada neste projeto de pesquisa. E ao final são demonstrado outros sistemas de Help Desk largamente utilizados no mercado. O terceiro capítulo refere-se ao projeto, incluindo os requisitos do sistema e a forma como ele será modelado e desenvolvido. Também é apresentado uma descrição sobre as ferramentas utilizadas para o desenvolvimento do sistema, como por exemplo o PHP (Hypertext Preprocessor) e o MySQL. O quarto capitulo apresenta as conclusões e recomendações para trabalhos futuros. 2 FUNDAMENTAÇÃO TEÓRICA Para o desenvolvimento do sistema de Help Desk necessita-se o conhecimento de conceitos de Inteligência Artificial, mais exatamente em Raciocínio Baseado em Casos e Rotinas de um setor de Help Desk. A seguir serão abordados os assuntos considerados os mais relevantes para este projeto. 2.1 HELP DESK Inicialmente para o desenvolvimento deste projeto deve-se entender o significado de Help Desk. A palavra é um termo inglês, que se descreve como serviço de apoio ao usuário. O Help Desk é uma área especializada na resolução de problemas, e suporte técnico a equipamentos de informática e telecomunicações, seja por telefone ou acesso remoto, com o objetivo de auxiliar e resolver problemas que os usuários possam ter. O objetivo maior do 13 Help Desk é fornecer aos usuários um ponto único de contato (SPOC - Single Point Of Contact), essencial para a comunicação entre os usuários e os profissionais da TI. O Help Desk surgiu da idéia de um mal necessário, ou seja, com a função de manter em funcionamento todo o aparato tecnológico que na teoria é responsável pelo crescimento do negócio da empresa. O Help Desk é obrigado a dispor de uma variada gama de conhecimentos, sendo que nem tudo que se apresenta através de dificuldade está disponível, anotado ou documentado, novos problemas são criados a partir do conflito de novas tecnologias, tornando-se algo inusitado. De acordo com Cohen (2005), os Help Desks são constituídos sobre a tríade pessoas, tecnologias e processos. Hoje em dia, os gerentes destas áreas encontram no mercado de fornecedores um grande leque de ferramentas para suprir a lacuna tecnologia. Possuem bom conhecimento sobre como organizar os mecanismos que envolvem processos, frutos elaborados da fusão organizacional de antigos setores de Organização e Métodos com as áreas de tecnologia da informação. Na grande maioria dos setores de Help Desk, o principal problema se concentra em receber mais chamados do que se pode atender. Na lógica a melhor maneira de solucionar esse problema é diminuir o numero de chamados efetivos que chegam até o Help Desk. O principal foco na diminuição de chamados para o Help Desk é a solução dos problemas que são gerados no dia-a-dia, porém na rotina das empresas, muitos são os problemas que se repetem, e chegam seguidas vezes ao suporte. O setor do Help Desk já tem por si próprio que lidar com metas para que mantenha toda a estrutura tecnológica da empresa em funcionamento, ou seja, deve-se separar o que é efetivo para ser solucionados diretamente pelo Help Desk, e o que são problemas repetitivos nos quais existem alternativas para sua solução. Na utilização de computadores, internet ou um sistema interno da empresa, os usuários se deparam com problemas iguais ou similares todo o tempo. O que acontece nesse caso é a forma que o problema é apresentado. Problemas de DNS (Domain Name System - Sistema de Nomes de Domínios), por exemplo, afeta diversos programas que acessam a internet, se não existe atribuição automática de DNS na rede onde se está navegando, o mesmo necessita que seja configurado no computador um endereço de DNS para o seu perfeito funcionamento, desta forma um programa de Chat, por exemplo, que 14 não conecta ou não executa todas as suas funções pode ter seus problemas atribuídos a uma mesma fonte, porém apresentado de forma diferente. Na tentativa de conectar-se à um rede sem fio por exemplo, no dispositivo de rede é atribuído a informação “conexão nula ou limitada”. Neste caso determina-se que o dispositivo provedor da rede sem fio não está configurado para trabalhar com DHCP, ou seja não distribui IP’s automaticamente. Assim sendo, o computador que tenta ingressar em sua rede não conseguirá navegar sem um IP configurado manualmente, enquanto para o usuário o único ponto relevante é que o mesmo não consegue utilizar a internet. Grande parte dos problemas relacionados à utilização de tecnologias de informática possui entre si uma similaridade por menor que ela seja. Assim sendo o tempo gasto na resolução definitiva de problemas, em grande parte é curto. A demora é notada pelo tempo que o profissional leva de deslocamento até a fonte, mais o tempo que é informado pelo usuário sobre as dificuldades. Problemas que podem ser resolvidos com a utilização de um sistema, deixando assim para o Help Desk apenas as situações efetivas. Fatores estes que tornam o serviço mais ágil, desafogando o setor, que é constantemente fonte de reclamações pela demora no seu atendimento. 2.2 INTELIGÊNCIA ARTIFICIAL A palavra inteligência vem do latim inter (entre) e legere (escolher). Portanto, inteligência significa aquilo que permite ao ser humano escolher entre uma, duas ou várias opções, ou ainda a habilidade de realizar uma determinada tarefa de forma eficiente. A palavra artificial vem do latim artificiale, e significa algo não natural (produzido pelo homem). Assim, inteligência artificial é um tipo de inteligência produzida pelo homem para dotar as máquinas de algum tipo de habilidade que simula a inteligência humana.(Fernandes, 2003 apud MENEZES, 2006). A inteligência Artificial (IA) busca prover máquinas com a capacidade de realizar algumas atividades mentais do ser humano. Em geral são máquinas com algum recurso computacional, de várias arquiteturas, que permitem a implementação de rotinas não necessariamente algorítmicas. As atividades realizadas por estas máquinas podem envolver a sensopercepção (como tato, audição, e visão), as capacidades intelectuais (como 15 aprendizado de conceitos e de juízos, raciocínio dedutivo e memória), a linguagem (como as verbais e gráficas) e atenção (decisão no sentido de concentrar as atividades sobre um determinando estímulo) (NASCIMENTO JR. e YONEYAMA, 2000). Em termos de tecnologia, IA permite que máquinas possam realizar tarefas complexas no lugar do operador humano, liberando-o de atividades enfadonhas, insalubres ou inseguras. Também pode aumentar a eficiência do humano na sua interação com equipamentos sofisticados. Permite, ainda que conhecimentos possam ser compartilhados por muitas pessoas, sem que haja necessidade de consultas a especialistas (NASCIMENTO JR. e YONEYAMA, 2000). 2.2.1 História O primeiro trabalho reconhecido como IA foi realizado por Warren McCulloch e Walter Pitts (1943). Eles se basearam em três fontes: o conhecimento da filosofia básica, a função dos neurônios no cérebro, uma análise formal da lógica proporcional criada por Russel e Whitehead, e a teoria da computação de Turing. Esses dois pesquisadores propuseram um modelo de neurônios artificiais no qual cada neurônio se caracterizava por estar “ligado” ou “desligado”, com a troca para “ligado” ocorrendo em resposta à estimulação por um número suficiente de neurônios vizinhos. O estado de um neurônio era considerado “equivalente em termos concretos a uma proposição que definia seu estímulo adequado”. Por exemplo, eles mostraram que qualquer função computável podia ser calculada por uma rede de neurônios conectados, e que todos os conectivos lógicos (e, ou, não etc.) podiam ser implementados por estruturas de redes simples. McCulloch e Pitts também sugeriram que redes definidas adequadamente seriam capazes de aprender. Donald Hebb (1949) demonstrou uma regra de atualização simples para modificar as intensidades de conexão entre neurônios. Sua regra, aprendizagem de Hebb, continua a ser um modelo influente até hoje (RUSSELL e NORVIG, 2004). Surgiram vários exemplos de trabalhos que hoje podem ser caracterizados como IA, mas foi Alan Turing que primeiro articulou uma visão completa da IA em seu artigo de 1950 intitulado “Computing Machinery and Intelligency”. Nesse artigo, ele apresentou o 16 teste de Turing, aprendizagem de máquina, algoritmos genéricos e aprendizagem por esforço (RUSSELL e NORVIG, 2004). Segundo Rabuske (1995 apud MENEZES, 2006), já em 1965, Zadeh propõe a base lógica difusa, também chamada de lógica nebulosa ou fuzzy logic, que lida com a avaliação de expressões lógicas contendo valores incertos. Grande parte do trabalho em redes neurais nos anos 80 foi realizada na tentativa de definir a abrangência do que poderia ser feito e de aprender como as redes neurais diferem das técnicas “tradicionais”. Utilizando uma metodologia aperfeiçoada e estruturas teóricas, o campo chegou a uma compreensão tal que, agora, as redes neurais podem ser comparadas as técnicas correspondentes da estatística, do reconhecimento de padrões e do aprendizado de máquinas, podendo ser utilizada a técnica mais promissora em cada aplicação. (RUSSELL e NORVIG, 2004). 2.3 RACIOCÍNIO BASEADO EM CASOS No dia-a-dia do ser humano, problemas que surgem a todo o momento em suas vidas forçam-nos a tomar decisões. As pessoas, por natureza trabalham com a hipótese de já ter vivido problema ou situação semelhante anteriormente, ou em outros casos, conhecem alguém que já tenha vivido o mesmo problema. Dessa experiência vivida ou adquirida utiliza-se solução semelhante ou até mesmo igual, focando na resolução do seu próprio problema. Segundo Wangenheim e Wangenheim (2003), a tecnologia de RBC pode ser analisada de dois pontos de vista diferentes. Pode ser considerada como uma metodologia para modelar o raciocínio e o pensamento humano e também como uma metodologia para construir sistemas computacionais inteligentes. Para Fernandes (2003 apud MIOTTO, 2006), “o processo característico do RBC, Raciocínio Baseado em Casos, consiste em identificar o problema atual, buscar a 17 experiência mais semelhante na memória e aplicar o conhecimento desta experiência passada no problema atual”. Abel (1996 apud MIOTTO, 2006), informa que para um domínio particular os problemas a serem resolvidos tendem a ser recorrentes e repetir-se com pequenas alterações em sua versão original. Desta forma, soluções anteriores podem ser aplicadas também com pequenas alterações. Segundo Leak (1996 apud THÉ, 2001) os sistemas de RBC podem ser interpretativos, onde utiliza casos anteriores como ponto de referência para classificar e/ou caracterizar novas situações, ou os RBC’s podem ser como soluções de problemas que utiliza casos anteriores para sugerir soluções para aplicar em novas circunstâncias. Segundo Fox (1995 apud GROSSMANN JR., 2002), o processo do RBC pode ser dividido em tarefas separadas, porém onde exatamente ficam as linhas que separam cada tarefa depende de cada aplicação em particular. Em linhas gerais normalmente esse processo se divide em três partes: a recuperação de um caso semelhante da base de casos, a avaliação do caso recuperado frente às necessidades do novo caso, e a adaptação do caso recuperado para que atenda satisfatoriamente o novo problema, conforme podemos ver na figura 1. Figura 1. As divisões do processo do RBC. Fonte: Adaptado de Grossmann Jr.(2002). 18 O Raciocínio Baseado em Casos é a forma lógica de pensamentos racionais, que se baseia em acontecimentos. A técnica é importante no modo de implementar um sistema de Inteligência Artificial, por trazer para próximo a forma de raciocínio do ser humano, de uma maneira simples e fácil de ser entendida. Uma metodologia simples, onde o problema atual é o ponto de partida para buscar experiências passadas, utilizar a mesma solução ou adaptar de forma que se aplique as novas situações. 2.3.1 Histórico Segundo Wangenheim e Wangenheim (2003 ), as raízes do Raciocínio Baseado em Casos na Inteligência Artificial foram inspirados nos trabalhos de Schank e Abelson sobre Memória Dinânima e no modelo cognitivo de uma função central de lembrança de situações passadas (casos e memória episódica) e de padrões de situações. Para Melchiors (1999 apud GROSSMANNN JR., 2002), em 1977, Schank e Abelson propuseram que o conhecimento geral das pessoas sobre as situações está armazenado em scripts, permitindo que elas criem expectativas sobre o que ouvem, e dessa forma façam deduções sobre as relações entre as coisas que ouviram. Os scripts foram propostos como uma estrutura de memória conceitual, descrevendo informação sobre eventos estereotipados, como ir a um restaurante ou a uma consulta a um médico. Porém experimentos com scripts mostraram que eles não representam uma teoria completa de representação de memória. Já que as pessoas confundem eventos que tem scripts similares. Os scripts parecem ser apenas uma faceta dos conhecimentos que as pessoas utilizam para a compreensão: elas se valem também de outros tipos de conhecimento, como o conhecimento sobre objetivos, planos, relações interpessoais e papéis efetuados pelas pessoas, segundo Kolodner (1993 apud GROSSMANNN JR., 2002). Representações sobre estes tipos de conhecimento têm sido propostas e sistemas de computadores que usam estes tipos de conhecimento para o entendimento têm sido desenvolvidos. Outros caminhos dentro da área de RBC foram, em seguida, pesquisados por Gentner, 1983, que estudou sobre o raciocínio analógico. Teoria de formação de conceitos, resolução de problemas e aprendizado experimental dentro da psicologia e da filosofia. Mas um dos primeiros sistemas que utilizou a metodologia de RBC foi o CYRUS, desenvolvido 19 por Janet Kolodner em 1983, baseado no modelo de memória dinâmica de Schank. A memória de casos neste modelo é uma estrutura hierárquica chamada pacotes de organização da memória episódica. A idéia básica é organizar casos específicos que possuam propriedades similares mais generalizadas de acordo com Plaza e Aamodt (1994 apud THÉ, 2001). Outra base de RBC e conjunto de modelos foi desenvolvida por Bruce Poter e seu grupo na University of Texas, em Austin. Inicialmente trabalhando com o problema de aprendizado automático para classificação de tarefas, o grupo desenvolveu o sistema PROTOS. O seguinte sistema enfatiza a integração do conhecimento geral do domínio e do conhecimento específico de casos em uma estrutura de representação unificada – um modelo de memória de casos. Além dessa, outra contribuição importante para a área foi o trabalho do grupo de Edwina Rissland na University of Massachussetts, em Amherst, que desenvolveram o sistema HYPO, aplicado para o domínio do Direito segundo Grossmannn Jr. (2002). 2.3.2 Elementos Básicos do RBC Para Wangenheim e Wangenheim (2003), os elementos básicos de um sistema de RBC são: • Representação do Conhecimento: Em um sistema de RBC, o conhecimento é representado principalmente em forma de casos que descrevem experiências concretas. No entanto, se for necessário, também outros tipos de conhecimento sobre o domínio de aplicação podem ser armazenados em um sistema de RBC (por exemplo, casos abstratos e generalizados, tipo de dados, modelos de objetos usados como informação). • Medida de Similaridade: Temos de ser capazes de encontrar um caso relevante para um problema atual na base de casos e responder à pergunta quando um caso relembrado for similar a um novo problema. • Adaptação: Situações representadas como casos dificilmente serão idênticas às do problema atual. Sistemas de RBC avançado têm mecanismos e 20 conhecimento parar adaptar os casos recuperados completamente, para verificar se satisfazem às características da situação presente. • Aprendizado: Para que um sistema se mantenha atualizado e evolua continuamente, sempre que ele resolver um problema com sucesso, deverá ser capaz de lembrar dessa situação no futuro como mas um novo caso. 2.3.3 Funcionamento de um RBC Segundo Wangenheim e Wangenheim (2003), o modelo mais aceito para o processo de RBC é o Ciclo de RBC proposto por Aamondt e Plaza, que engloba um ciclo de raciocínio contínuo composto por quatro tarefas principais demonstrado na figura 2: • recuperar: o(s) caso(s) mais similar(es) da base de casos; • reutilizar: este(s) caso(s) para resolver o problema; • revisar: a solução proposta; e • reter: a experiência representando o caso atual (ou partes desta experiência) para reutilização futura. 21 Figura 2. Ciclo do Raciocínio Baseado em Casos. Fonte: Adaptado de Wangenheim e Wangenheim (2003). 2.3.4 Representação de um Caso De acordo com Wangenheim e Wangenheim (2003), um caso é uma peça de conhecimento contextualizado representando uma experiência ou episódios concretos. Contém a lição passada, que é o conteúdo do caso e o contexto em que a lição pode ser usada. Um caso é definido pela representação do conhecimento contido em uma experiência vivida que conduz o indivíduo a alcançar seus objetivos. Todo caso é composto por Problema, que descreve o estado do mundo real onde o caso ocorre; e Solução, que contém o estado das soluções derivadas para o problema. Pode-se ainda visualizar o caso pela representação do espaço do problema e pela representação do espaço da solução de acordo com Lagemann (1998). 22 O caso é o ponto de partida para a procura de uma solução, ele representa acontecimentos e conhecimentos, e traz com ele a lição passada da experiência vivida. A figura 3, representa o ciclo do RBC de uma forma mais analítica. Figura 3. O Ciclo RBC – Versão mais Analítica Fonte: Adaptado de Grossmann Jr. (2002). O que é comum a todos os casos é que eles representam uma situação experimentada. Esta situação, quando relembrada mais tarde forma um contexto no qual o conhecimento nela inserido é supostamente aplicável. Quando uma situação similar surge, aquelas decisões e o conhecimento que fez parte delas provêm um ponto de partida para a interpretação da nova situação ou para a solução do novo problema que esta situação coloca (WANGENHEIM e WANGENHEIM, 2003). 23 De acordo com Kolodner (1993 apud LUGER, 2002) propõe um conjunto de heurística de preferências para ajudar a organizar o armazenamento e a recuperação de casos. Entre elas estão: 1. Preferência orientada a objeto. Organizar os casos, pelo menos em parte, pelas descrições do objetivo. Recuperar casos que tenha o mesmo objetivo que a situação corrente. 2. Preferência por características salientes. Preferir casos que casem com as características mais importantes ou aqueles que casem com o maior número de características importantes. 3. Preferência por maior especificidade. Procurar por casamentos de características, tão exatos quanto possíveis, antes de considerar casamentos mais genéricos. 4. Preferência por ocorrências freqüentes. Verificar primeiro os casos que foram mais freqüentemente casados. 5. Preferência por atualidade. Preferir casos usados mais recentemente. 6. Preferência por facilidade de adaptação. Usar primeiro os casos mais fáceis de serem adaptados à situação corrente. Segundo Fernandes (2003 apud MIOTTO, 2006), o problema na representação de Raciocínio Baseado em Casos é essencialmente o que se deve guardar de um caso, a estrutura apropriada para a descrição do mesmo e como a memória de casos deve ser organizada e indexada pra efetuar satisfatoriamente a recuperação e reutilização. 2.3.5 Similaridade O conceito de utilidade de casos é, de um ponto de vista abstrato, central para o Raciocínio Baseado em Casos. Durante a recuperação de casos procura-se por um caso na 24 base de casos, que, no contexto da descrição do problema atual, é útil para determinar a sua solução (WANGENHEIM e WANGENHEIM, 2003). Segundo Delpizzo (1997 apud MIOTTO, 2006), a similaridade é o ponto crucial do RBC, pois todo raciocínio que dá fundamento a esta técnica está aqui. A avaliação feita comparando-se os casos candidatos com o caso a ser solucionado, sendo a semelhança das características é que irá determinar a similaridade entre eles. Segundo Fernandes (2003 apud MENEZES, 2006), um caso será similar ao outro quando as características que representam o conteúdo e o contexto do mesmo forem semelhantes. De acordo com Wangenheim e Wangenheim (2003), uma das hipóteses básicas de um sistema de RBC é que problemas similares possuem soluções similares. Com base nesta hipótese, o critério a posteriori da utilidade de solução passa a ser reduzido ao critério a priori da similaridade de descrições de problema. Esta forma de proceder é justificada pela premissa de que, em muitas aplicações, a similaridade de definições de problemas implica a aplicabilidade da solução de um sobre outro. Para Wangenheim e Wangenheim (2003), a solução descrita em um exemplo de caso escolhido pode ser útil para um novo problema, caso ela: • Permita o solucionamento do problema atual de alguma forma; • Evite a repetição de um erro anterior; • Permita um solucionamento eficiente do problema, que seja mais rápido do que, por exemplo, utilizar uma heurística passo a passo para calcular uma solução; • Ofereça a melhor solução para o problema de acordo com um critério de otimalidade qualquer; • Ofereça ao usuário uma solução cuja lógica possa ser compreendida por ele. 25 Assim sendo a similaridade é o ponto definitivo do funcionamento do RBC, através dela serão definidos os padrões para a procura por soluções com base nos acontecimentos anteriores. A similaridade diz o quanto próximo o problema atual, está de um problema do passado, assim como a sua solução. 2.3.5.1 Indexação Os índices de um caso são combinações de seus atributos mais importantes, que permitem distingui-lo de outros e identificar casos úteis para uma dada descrição de problema (WANGENHEIM e WANGENHEIM, 2003). Os índices são normalmente utilizados quando a base de casos é grande, para facilitar a recuperação dos casos armazenados, sendo os responsáveis por tornar um caso acessível no momento e condição apropriado – isto é, quando ele possuir um potencial para contribuir para a solução do problema corrente. São combinações dos descritores importantes de um caso, isto é, daqueles descritores que distinguem um caso dos outros. O esquema de indexação envolve várias partes. Primeiramente, devem ser designados rótulos para os casos no momento em que estes são armazenados na base, de modo a garantir que eles possam ser recuperados no momento apropriado. Tais rótulos são usados no momento de recuperação para julgar se o caos armazenado deve se selecionado. Uma segunda questão envolvendo a indexação é a definição da organização dos casos, de modo que a busca através da base de casos seja eficiente e precisa. Relacionada a estas questões está a definição dos algoritmos de recuperação a serem utilizados (GROSSMANN JR., 2002). Segundo Lagemann (1998), a indexação é a essência do RBC, pois orienta a avaliação da similaridade, e determina o que comparar entre os casos para determinar sua similaridade. Assim, um RBC além de usar índices com os objetos de facilidade e rapidez na recuperação, também os usa para realizar eficientemente a atribuição de similaridade entre os casos. Para Kolodner (1993 apud MIOTTO, 2006), o grande problema em um RBC é retornar os casos apropriados. Para esta indexação existem dois problemas, que são o de 26 colocar um rótulo no caso no momento em que ele está entrando na biblioteca de casos para assegurar que possa ser lido no momento adequado e o segundo é que a busca possa ser feita através desta biblioteca de casos de maneira eficiente e correta. Algumas diretrizes que levaram a comunidade RBC a escolherem alguns índices: • Índices devem ser preditivos; • Predições devem ser possíveis de serem feitas para ser um índice útil; • Índices devem se abstratos o suficiente para fazer um caso útil em uma variedade de situações futuras; e • Índices devem ser concretos o suficiente para serem facilmente reconhecidos em situações futuras. (ibidem) Assim sendo, os índices devem efetuar a tarefa de rotular um caso como sendo capaz de auxiliar no suporte para determinadas decisões que o sistema de RBC possa sugerir. 2.3.5.2 Recuperação Recuperação do caso envolve a lembrança dos casos anteriores e a seleção do melhor sub-conjunto daqueles casos recordados, de acordo com Kolodner (1993 apud THÉ, 2001). Para realizar essa recuperação, é necessário casar a descrição do problema atual com os problemas armazenados na base de casos, aplicando uma medida de similaridade (WANGENHEIM e WANGENHEIM, 2003). À medida que a descrição do problema de entrada está definida é preciso utilizar um algoritmo de recuperação, utilizam-se, então, os índices já valorados anteriormente para este processo. A avaliação da similaridade mede a similaridade do caso de entrada com os casos da base. A recuperação tem por objetivo recuperar os casos mais similares entre o 27 caso de entrada e o caso da base aproveitando a solução do problema que está sendo analisado segundo Watson (1997 apud THÉ, 2001). O processo de recuperação de casos tem por objetivo localizar um caso ou conjunto de casos que de alguma forma possa ter a solução para situação atual. Esse processo pode ser descrito por um conjunto de subtarefas à serem realizadas pelo sistema de RBC: • Assessoramento da situação objetivando a formulação de uma consulta representada por um conjunto de descritores relevantes da situação ou problema atuais; • Casamento, objetivando a identificação de um conjunto de casos suficientemente similares à consulta; • Seleção, que escolhe o melhor casamento ou casamentos com base no conjunto de casos selecionado (WANGENHEIM e WANGENHEIM, 2003). 2.3.5.3 O Vizinho mais próximo (Nearest Neighbour) Segundo Wangenheim e Wangenheim (2003), uma medida de similaridade freqüentemente utilizada é a técnica nearest neighbour, bastante simples para a determinação de similaridade entre dois casos. A idéia básica deste enfoque motivado geometricamente é, que as ocorrências em uma base de casos podem também ser vistas como pontos em um espaço multidimensional. Segundo Kolodner (1993 apud MIOTTO, 2006), cada característica do caso de entrada é comparada com a sua correspondente nos casos armazenados, o grau de igualdade é computado, e baseado na importância atribuída para cada dimensão, uma medida de similaridade é calculada. Para cada característica no caso de entrada. • Encontre a característica correspondente no caso armazenado; • Compare os valores e calcule o grau de igualdade; 28 • Multiplique pelo coeficiente que representa a importância da característica para similaridade; e • Adicione os resultados que derivarem ao total. Uma formula para similaridade pelo vizinho mais próximo, segundo Fernandes (2003 apud MENEZES, 2006), é apresentada na Equação 1. n * Similaridade( N , F ) = ∑ f (N i ' Fi ) wi Equação 1 i =1 Onde: N = novo caso F = caso existente n = número de atributos i = atributo individual variando de 1 a n f = função de similaridade para o atributo i nos casos N e F w = peso do atributo i. O Cálculo será aplicado para toda a base de casos para que se obtenha um ranking dos mesmos. A similaridade normalmente varia de um intervalo entre 0 e 1, sendo 0 atribuído ao caso sem similaridade e atribuído 1 ao caso que tiver a similaridade exata, segundo Fernandes (2003 apud MENEZES, 2006). 2.3.6 Adaptação De acordo com Fernandes (2003 apud MIOTTO, 2006) o processo de ajuste da nova situação é incremental, podendo ser desenvolvida antes ou durante a recuperação. 29 Parte do processo irá ocorrer antes da pesquisa, parte durante sua avaliação e, sendo a avaliação inicial incompleta, parte ocorre após a pesquisa, sendo que: • Existe a necessidade de ajuste da situação para se descobrir o tipo de nova situação, o que importa nela é as verdades além do motivo; • É feita a avaliação dos detalhes e interpretação da situação, sendo mais completa a interpretação que a situação, mais sujeita as mudanças do raciocinador; • Pessoas podem realizar a interpretação de formas diferentes, como também os programas; • Interpretações inexatas geram conclusões pobres; e • Pode haver a necessidade de várias interpretações para encontrar algo satisfatório. O ajuste da situação pode ser realizado em três etapas: • Antes da pesquisa: definindo o contexto com o uso de check-list; • Durante a pesquisa: refinando o contexto incrementalmente; e • Após a pesquisa: redefinindo o contexto. Pelo fato de nenhum problema do passado, se encontrar exatamente ao problema atual, qualquer utilização de uma solução deve ser adaptada visando solucionar os novos problemas. O processo de adaptação desenvolve-se durante todo o processo pela busca de uma solução, do momento que a mesma é encontrada, até o momento que é utilizada. Esse desenvolvimento da adaptação para uma solução, torna a capacidade de resolver um problema mais eficaz, garantindo que o sistema sempre apresente uma alternativa. 2.3.7 Aprendizado Para Lagemann (1998) na IA, quando se fala de aprendizagem, é comum pensar no aprendizado por generalização, tanto pela indução quanto baseado em explicações. 30 Enquanto a memória de RBC informa sobre similaridade entre casos e também informa sobre quando generalizações podem ser formadas. O RBC obtém a maioria do seu aprendizado de duas maneiras: • Pela acumulação de novos casos; e • Pela identificação de quais índices utilizar ou não na recuperação. Nas palavras de Wangenheim e Wangenheim (2003) RBC implica uma forma de aprendizado por analogia, em que, por meio da transformação e extensão de conhecimento existente, uma tarefa ou problema similar são executados ou resolvidos. Em contraste com métodos gerais de aprendizado por analogia, que são utilizados para caracterizar métodos que solucionam novos problemas com base em experiências passadas análogas adquiridas em um outro domínio de aplicação, métodos de RBC típicos enfocam estratégias de indexação e recuperação para casos de um único domínio. As analogias geradas pelos métodos de RBC não necessitam ser corretas e generalizáveis. A tarefa de aprender pode ser vista como o processo de melhoria da performance de um sistema de RBC (WANGENHEIM e WANGENHEIM, 2003): • para a melhora dos repositórios de conhecimento de um sistema de RBC, em especial a base de casos, por meio de adição, modificação e deleção de casos, • para a melhora da medida de similaridade, por exemplo, por meio do ajuste de pesos, e • para a transformação da metodologia de solução, por exemplo, por meio do ajuste das regras de adaptação de casos (WANGENHEIM e WANGENHEIM, 2003). 31 2.4 Sistemas Similares Seguindo através de pesquisas pela internet, foram selecionados alguns sistemas similares dentro da área de Help Desk, não somente baseado sobre Inteligência Artificial, devido à falta de sistemas específicos. 2.4.1 Fireman Professional Fireman Professional é um aplicativo para registro de chamados, help desk e suporte técnico. Utilizando tecnologia de três camadas, pode ser utilizado tanto para suporte interno quanto externo, integrando-se aos seus bancos de dados já existentes. O Fireman Professional permite o gerenciamento de solicitações de serviços, base de conhecimento, inventário, detalhes sobre a empresa / usuário, de maneira fácil. Através dele pode ser notado a melhora em um determinado departamento assim como o atendimento ao usuário, aumentando a eficiência, reduzindo a carga de serviço e, mantendo os usuários confiantes no suporte oferecido (FIREMAN, 2007). O Gerenciamento de Configuração deve identificar, registrar e relacionar os componentes de TI, assim como suas versões, componentes constituintes e seus relacionamentos. Os itens que podem estar sob controle do Gerenciamento de Configuração incluem hardware, software e documentações associadas (FIREMAN, 2007). Através do FireDog, coletor de inventário do Fireman, são possíveis: • Coletar, de maneira automática, hardwares de cada estação na rede (considere restrições existentes do produto, como ambiente operacional e outros); • Coletar, de maneira automática, softwares de cada estação na rede (considere restrições existentes do produto, como ambiente operacional e outros); • Inclusão manual de novos itens de inventário como dispositivos de rede (hubs, switchs), documentação, impressora de redes, etc; 32 • Acompanhar as licenças de softwares existentes em seu parque de equipamentos e o gerenciamento sobre elas; • Planejar o Gerenciamento de Mudanças (necessidades, upgrades, trocas de versão, etc) através dos dados contidos neste Gerenciamento de Configurações; • Identificar itens de configuração (ou de inventário) antigos que podem estar gerando problemas no ambiente de infra-estrutura; • Policiamento sobre mudanças não-autorizadas na rede (novos softwares nas estações; remoção ilegal de peças e periféricos, etc); e • Auditoria nos itens de configuração, assim como log de mudanças nos mesmos (FIREMAN, 2007). Figura 4. Abertura de um chamado. Fonte: Fireman (2007). 33 Figura 5. Abertura de um chamado via Web. Fonte: Fireman (2007). 34 Figura 6. Criação da Base de conhecimento. Fonte: Fireman (2007). 2.4.2 HelpDesk-3 Uma solução integrada e modular, que cobre todo o ciclo de atendimento e suporte a usuário. Entre os principais itens que aborda estão: • mapeamento das características do cliente (inventário estático e dinâmico); • estabelecimento de regas de atendimento; • montagem de scripts e base de conhecimento ( usando IA); • controle de chamados integrado ao inventário automático; • indicadores de desempenho; e • pesquisas de satisfação (HELPDESK-3, 2007). 35 Dentre as características do sistema, podem-se destacar a criação de bases de conhecimento com mecanismo inteligente de busca, facilidade de armazenamento, indexação e recuperação de conhecimento e a criação de scripts inteligentes, para guiar o processo de registro de um atendimento, tanto via web como via cliente-servidor, garantindo as perguntas certas para obter dados essenciais ao atendimento do chamado. Figura 7. Abertura de chamados via web. Fonte: Helpdesk-3 (2007). O HelpDesk-3 tem uma estratégia voltada para inteligência artificial para efetuar a busca por informações. Criado para dar suporte ao processo de atendimento, o HD-3 tem como principal diferencial a utilização da tecnologia CBR (Case Based Reasoning) para permitir o acesso fácil às informações, aumentando de forma significativa a eficiência das atividades de suporte técnico (HELPDESK-3, 2007). 36 Figura 8. Busca por problemas já conhecidos. Fonte: Helpdesk-3 (2007). 2.4.3 Automidia CBR O AUTOMIDIA CBR consiste em uma ferramenta de Help Desk que utiliza Case- based Reasoning, ou apenas CBR, que consiste em uma forma de recuperar conhecimento e informação baseando-se na similaridade entre as situações. Poderíamos fazer uma analogia entre um Caso e um Objeto da OOP (Programação Orientada a Objetos) - são compostos por um conjunto de atributos, que recebem valores diferentes para cada instância do Objeto. Em uma Base de Casos para suporte ao Helpdesk, um Caso representa um Problema (sua descrição, atributos) e respectiva solução indicada pelo segundo nível (AUTOMIDIA, 2007). 37 No Automidia CBR, à um Caso associam-se: uma descrição (fornecida em linguagem natural), um conjunto de questões com suas respostas esperadas e uma solução indicada para solucionar aquele caso (AUTOMIDIA, 2007). O processo de busca inicia por uma Descrição em Linguagem Natural fornecida pelo usuário que é submetida a uma comparação "não-exata" com todas as descrições de casos armazenados na base. Isto significa que, mesmo não tendo as mesmas palavras usadas pelo usuário (ou dispostas de maneira diferentes) descrições de casos podem ter um grau de similaridade próximo a 100% (AUTOMIDIA, 2007). A partir da comparação inicial, é construído um conjunto de Casos Candidatos que será usado no refinamento da busca. Neste processo, entram as Questões associadas aos casos que receberam maior "score" no processo de comparação das descrições (AUTOMIDIA, 2007). Um conjunto de casos candidatos é construído. A partir de então, um refinamento da busca é feito usando as questões associadas a cada caso. O mecanismo de comparação (match) seleciona as questões que tem maior capacidade de promover a identificação de um caso para a situação apresentada (AUTOMIDIA, 2007). Ao final do processo uma certa quantidade de pontos é relacionado ao caso, ou seja é definido para aquele caso um “índice de similaridade”, e os casos que atingem próximo a 100% representam situação igual à apresentada pelo usuário. 38 Figura 9. Automidia Change Management - Interface Web para os Analistas. Fonte: Automidia (2007). 2.4.4 Análise de ferramentas similares A tabela a seguir representa um quadro comparativo entre as ferramentas similares e o projeto desenvolvido. Ferramentas Fireman Help Desk - 3 Automidia CBR HDRBC Técnica IA Não possui RBC RBC RBC Aplicação Web Sim Sim Sim Sim Acessibilidade - Sim Sim Sim Hardware Sim Sim Sim Sim Software Sim Sim Sim Sim Aprendizagem Não Não - Sim Acompanhamento Sim Sim Sim Sim Tabela 1. Análise de Ferramentas Similares 39 • Técnica IA: Trata-se da técnica de Inteligência Artificial que o sistema contempla. • Aplicação Web: Capacidade do sistema contemplar ou não uma interface web, não necessitando que o usuário tenha o sistema instalado no próprio computador. • Versatilidade: Compões-se da capacidade do sistema em se adequar as necessidades do seu utilizador, seja ele empresa ou simplesmente o usuário. • Acessibilidade: Trata-se de tornar o sistema acessível ao qualquer pessoa durante a sua utilização. Este item aborda desde opções de layout até mesmo e desenvolvimento do código, tornando de acordo com as necessidades do usuário. • Hardware: Define se o sistema contempla ou não a capacidade de gerenciar soluções para problemas de hardware. • Software: Define se o sistema contempla ou não a capacidade de gerenciar soluções para problemas de software. • Aprendizagem do sistema: É a capacidade do sistema de aprender com as novas situações. A partir do momento que o sistema sugere uma solução correta ou não para o usuário, o mesmo deve aprender e armazenar na sua base de casos, para que futuramente possa ser utilizada. • Acompanhamento do Analista: Independente da capacidade de sugerir soluções ao usuário, este item define se o sistema contempla ou não o acompanhamento de um analista para eventuais situações inesperadas. 3 PROJETO O presente trabalho consiste em um software utilizando Raciocínio Baseado em Casos ou RBC, para auxiliar os usuários na busca por soluções para problemas 40 computacionais do dia-a-dia, deixando para o setor de Help Desk apenas os problemas não resolvidos pelo sistema RBC. O sistema disponibiliza uma interface para o administrador e outra para o usuário. Nesse caso, o administrador se trata de um analista do setor de Help Desk, para que o mesmo possa acompanhar o andamento dos processos e as freqüentes dúvidas. Também disponibiliza a interface de consulta do usuário, onde o mesmo pode procurar soluções necessárias. A interação do usuário com o sistema dentro do que se assim bem como o funcionamento do RBC em um contexto geral é demonstrado na Figura 10. Figura 10. Projeto visão do usuário. Neste capítulo, será apresentado o projeto do Sistema de Help Desk baseado em RBC. Inicialmente serão demonstrados os requisitos funcionais e não funcionais do sistema, seguido por uma análise do sistema através da notação UML. O diagrama de caso de uso foi utilizado para descrever o problema e mostrar de que forma será a interação que o usuário terá com o sistema. No diagrama de classes foram 41 representadas as principais classes de negócio que farão parte do sistema, enquanto o diagrama de seqüência representa a forma como os eventos deverão acontecer no sistema e as suas principais operações. 3.1 ANÁLISE DE REQUISITO 3.1.1 Requisitos Funcionais Os requisitos funcionais abrangem todas as funcionalidades que o sistema deve possuir. De acordo com o estudo feito, foi definido que para o Sistema de Help Desk Baseado em RBC devem ser atribuídos os seguintes itens como requisitos: • RF.01 - O sistema deve permitir o cadastro, a manutenção e exclusão de usuários do sistema; • RF.02 - O sistema deve permitir o cadastro, alteração e exclusão de novos casos; • RF.03 - O sistema deve fazer pesquisa de soluções computacionais similares (RBC); • RF.04 – O sistema deve analisar o caso definido pelo usuário, e através da medida de similaridade nearest neighbour (Vizinho mais próximo) pesquisar casos semelhantes na base de casos. • RF.05 - O sistema deve disponibilizar um módulo administrador para alterações no sistema; • RF.06 - O sistema deve ser capaz de aprender com os casos apresentados pelo usuário, para que os mesmos possam ser utilizados futuramente; • RF.07 - O sistema deve permitir a sua utilização pelo usuário mediante a apresentação de login e senha; 42 • RF.08 - O sistema deve permitir consulta ao histórico de resoluções de problemas; • RF.09 - O sistema deve permitir ao usuário enviar mensagens aos analistas de Help Desk cadastrados no sistema; • RF.10 - O sistema deve permitir separar os problemas por categoria; e • RF.11 - O sistema deve permitir ao usuário consultar os resultados menos relevantes como segunda opção apresentada pelo sistema. 3.1.2 Requisitos não funcionais • RNF.01 - O sistema operacional deve ser o Windows NT, 2000, XP ou Vista; • RNF.02 - O Browser utilizado deve ser o Internet Explorer 5.0 ou superior; • RNF.03 - O banco de dados utilizado será o Mysql; • RNF.04 - Módulo apache em execução como servidor; e • RNF.05 - O sistema deve permitir acesso apenas a usuários cadastrados no sistema assim como administradores; 3.1.3 Regras de negócio • RN.01 - O usuário poderá ter acesso ao seu histórico de resoluções de problemas; • RN.02 - Somente os administradores poderão excluir usuários do sistema; • RN.03 - Somente o administrador poderá ter acesso ao histórico de todos os usuários cadastrados. 43 3.2 Modelagem do Sistema A seguir é apresentada a modelagem do sistema, utilizando-se a linguagem UML, contendo os principais diagramas que foram utilizados. 3.2.1 Diagrama de casos de uso Segundo Furlan (1998 apud MIOTTO, 2006), os diagramas de caso de uso fornecem uma descrição do sistema e suas interações com o mundo exterior, representando uma visão de alto nível de funcionalidade intencional mediante o recebimento de um tipo de requisição do usuário. Figura 11. Caso de Uso do Administrador. UC 01.01 – Configura Usuário: Permite o cadastro, alteração e exclusão dos usuários que possuem acesso ao sistema. Cadastra Novo Usuário – Fluxo Principal. 1. O sistema exibe o menu de configurações de usuários. 44 2. O Administrador escolhe a opção cadastrar usuário 3. O Administrador insere os dados para o cadastro do novo usuário. 4. O sistema insere no banco de dados o novo usuário Alterar Usuário – Fluxo Alternativo. 1. Sistema exibe o menu com as opções. 2. O Administrador seleciona a opção alterar usuário. 3. O sistema busca os usuários cadastrados no banco de dados. 4. O sistema exibe na tela a lista dos usuários cadastrados. 5. O Administrador seleciona o usuário. 6. O Administrador altera os dados do usuário. 7. O administrador confirma as alterações 8. O sistema atualiza as informações do usuário selecionado. Excluir Usuário – Fluxo Alternativo. 1. O sistema exibe o menu com as opções. 2. O Administrado seleciona o a opção excluir usuário. 3. O Sistema busca os usuários cadastrados no banco de dados. 4. O Sistema exibe na tela os usuários cadastrados. 5. O Administrador seleciona o usuário à ser excluído. 6. O Administrador confirma a exclusão. 7. O Sistema exclui o usuário selecionado. 45 Pré-condição. 1. O Administrador deve estar autenticado no sistema. UC 01.02 – Cadastra Casos: Este caso de uso consiste em como o administrador do sistema cadastra e configurar novos casos na base de casos. Cadastra Caso – Fluxo Principal. 1. O sistema exibe o menu com as opções. 2. O Administrador seleciona a opção cadastro de casos. 3. O sistema exibe a tela para cadastro de novos casos. 4. O Administrador informa os dados do novo caso. 5. O Administrador confirma a inclusão do novo caso. 6. O sistema insere no banco de dados o novo caso. Alterar Caso – Fluxo Alternativo. 1. O sistema exibe o menu com as opções. 2. O Administrador seleciona a opção listar casos. 3. O sistema exibe na tela a lista dos casos cadastrados. 4. O Administrador seleciona o caso desejado. 5. O Administrador altera os dados do caso. 6. O Administrador confirma as alterações do caso. 7. O sistema altera o caso selecionado. 46 Excluir Caso – Fluxo Alternativo. 1. O sistema exibe o menu com as opções. 2. O Administrador seleciona a opção listar casos. 3. O sistema exibe a lista de casos cadastrados no banco de dados. 4. O Administrador seleciona o caso desejado. 5. O Administrador seleciona excluir caso. 6. O Administrador confirma a exclusão. 7. O sistema exclui o caso selecionado do banco de dados. Pré-condição. 1. O Administrador deve estar autenticado no sistema. UC 01.03 – Consulta Casos: Este caso de uso permite ao administrador definir no sistema como será a utilização da consulta dos casos cadastrados na base de casos. Consulta Caso – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Administrador seleciona a opção consulta casos. 3. O sistema busca os casos e apresenta na tela. 4. O Administrador seleciona o caso que deseja consultar. Pré-condição. 1. O Administrador deve estar autenticado no sistema. 47 UC 01.04 – Cadastra Categoria: Permite ao administrador do sistema cadastrar e configurar categorias para os problemas consultados na base de casos. Cadastra Categoria – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Administrador seleciona a opção Cadastrar Categoria de Objetos. 3. O sistema apresenta a lista das categorias cadastradas. 4. O Administrador seleciona a opção incluir. 5. O sistema apresenta a tela de cadastro de nova categoria. 6. O Administrador informa os dados da nova categoria. 7. O Administrador confirma a inserção. 8. O sistema cadastra a nova categoria. Alterar Categoria – Fluxo Alternativo. 1. O sistema exibe na tela o menu com as opções. 2. O Administrador seleciona a opção listar categorias. 3. O sistema apresenta as categorias cadastradas no banco de dados. 4. O Administrador seleciona a categoria que deseja alterar. 5. O Administrador altera os dados. 6. O Administrador confirma as alterações. 7. O sistema atualiza as informações da categoria. 48 Excluir Categoria – Fluxo Alternativo. 1. O Sistema exibe na tela as opções do menu. 2. O Administrador seleciona listar categoria. 3. O sistema exibe na tela as categorias cadastradas. 4. O Administrador seleciona a categoria que deseja excluir. 5. O Administrador confirma a exclusão. 6. O sistema exclui do banco de dados a categoria escolhida. Pré-condição. 1. O Administrador deve estar autenticado no sistema. UC 01.05 – Consulta Histórico do Usuário: Este caso de uso descreve como o administrador pode ter acesso ao histórico de consultas de casos para solução de problemas dos usuários do sistema. Consultar Histórico do Usuário – Fluxo Principal. 1. Se o Administrador estiver autenticado no sistema. 2. O sistema exibe na tela as opções do menu. 3. O Administrador seleciona a opção Listar Usuários. 4. O sistema exibe na tela os usuários cadastrados. 5. O Administrador seleciona o usuário que deseja consultar histórico. 6. O Administrador seleciona a opção Consultar Histórico do Usuário. 7. O Sistema exibe na tela o histórico do usuário selecionado. 49 Pré-condição. 1. O Administrador deve estar autenticado no sistema. UC 01.06 – Cadastra Problema: Este caso de uso descreve como o administrador do sistema efetua o cadastro, alteração ou exclusão de problemas no sistema. Cadastra Problema – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Administrador seleciona a opção Cadastro de Problemas dentro da categoria desejada. 3. O sistema exibe a tela de cadastro de problema 4. O Administrador insere os dados do novo problema, 5. O Administrador confirma os dados. 6. O sistema insere o novo problema. Alterar Problema – Fluxo Alternativo. 1. O sistema exibe na tela as opções do menu. 2. O Administrador seleciona a opção listar problemas. 3. O Administrador seleciona o problema desejado. 4. O sistema exibe na tela os dados do problema. 5. O Administrador insere novos dados sobre o problema. 6. O Administrador confirma as alterações. 7. O sistema atualiza os dados do problema no banco de dados. 50 Excluir Problema – Fluxo Alternativo. 1. Se no passo 5 do fluxo “Altera Problema” do Use Case 01.07, o Administrador não estiver de acordo. 2. O Administrador pode selecionar a opção “Excluir Problema” na tela “Alterar Problema”. 3. O Administrador confirma a exclusão. 4. O sistema exclui o problema selecionado. Pré-condição. 1. O Administrador deve estar autenticado no sistema. UC 01.07- Consulta Problema: Este caso de uso descreve como o administrador do sistema pode efetuar a consulta por problemas separados por categoria no sistema. Consulta Problema – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Administrador seleciona a opção Consulta Problema. 3. O Sistema exibe na tela os problemas cadastrados. 4. O Administrador Seleciona o problema desejado. 5. O sistema exibe as informações sobre o problema selecionado. Pré-condição. 1. O Administrador deve estar autenticado no sistema. 51 Figura 12. Caso de Uso do Usuário. UC 02.01 – Efetua Login: Usuário acessa o sistema com login e senha. Efetua Login – Fluxo Principal 1. Usuário acessa a página inicial do sistema. 2. Sistema exibe na tela o campo de login e a senha. 3. Usuário informa o login e a senha e solicita autenticação no sistema. 4. Se os dados foram digitados, o sistema verifica no banco de dados; e 5. Se o login e a senha conferem, sistema direciona o usuário para a tela do menu inicial no sistema. 52 Dados Incorretos – Fluxo Alternativo 1. No passo 5, se o login e a senha não foram digitados corretamente, o sistema não permite o acesso e exibe uma mensagem de erro para notificar o usuário. UC 02.02 – Visualiza seu Histórico de Consultas: Este caso de uso descreve a permissão do usuário em acessar o seu histórico de consulta por problemas, podendo visualizar os todos, ou apenas os últimos problemas resolvidos através do sistema. Visualiza seu Histórico de consultas – Fluxo Principal. 1. Se o Usuário estiver autenticado no sistema. 2. O sistema exibe na tela as opções do menu. 3. O Usuário seleciona a opção Histórico de Consultas. 4. O Sistema exibe na tela o Histórico do usuário. Pré-condição. 1. O Usuário deve estar autenticado no sistema. UC 02.03 – Cadastra Problema: Este caso de uso descreve como o usuário pode efetuar o cadastro de novos problemas para serem solucionados. Cadastra Problema – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Usuário seleciona a opção Cadastra Problema dentro da categoria desejada. 3. O sistema exibe a tela de cadastro de problema 4. O Usuário insere os dados do novo problema, 53 5. O Usuário confirma os dados. 6. O sistema registra um novo chamado. Pré-condição. 1. O Usuário deve estar autenticado no sistema. UC 02.04 – Consulta Soluções: Este caso de uso descreve como o usuário efetua a utilização da consulta por soluções, assim como a consulta por soluções alternativas, àquelas que possuem um grau de similaridade menor. Consulta Soluções – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O Usuário seleciona a opção Consulta Soluções. 3. O sistema efetua a busca por soluções utilizando a medida de similaridade nearest neighbour (Vizinho mais próximo). 4. O Sistema exibe na tela a lista de soluções com a porcentagem de similaridade, da mais similar para a menos similar. 5.O Usuário seleciona a solução que deseja consultar. 6.O sistema exibe na tela a solução selecionada. Consulta Solução Alternativa – Fluxo Alternativo 1. Se no passo 6 do fluxo “Consulta Soluções” do Use Case 02.04, o usuário não estiver de acordo com a solução apresentada . 2. O Usuário pode selecionar a opção Solução Alternativa. 3. O sistema exibe na tela a lista das soluções com menor grau de similaridade. 54 4. O Usuário seleciona a solução desejada. 5. O sistema exibe na tela a solução selecionada. Pré-condição. 1. O Usuário deve estar autenticado no sistema. UC 02.05 – Envia Mensagem ao Help Desk: Este caso de uso descreve como o usuário pode ter contato com os analistas de Help Desk, caso não consiga uma solução através da consulta na base de casos. Envia Mensagem ao Help Desk – Fluxo Principal. 1. O sistema exibe na tela as opções do menu. 2. O usuário pode selecionar a opção “Enviar Mensagem ao Help Desk”. 3. O Sistema exibe na tela o formulário para o preenchimento da mensagem. 4. O Usuário preenche os campos da mensagem. 5. O Usuário seleciona a opção enviar. 6. O sistema envia a mensagem ao Help Desk. Pré-condição. 1. O Usuário deve estar autenticado no sistema. 3.2.2 Diagrama de classes Segundo Furlan (1998 apud MIOTTO, 2006) trata-se de uma estrutura lógica estática em uma superfície de duas dimensões mostrando uma coleção de elementos declarativos de modelo como classes, tipos e seus respectivos conteúdos e relações. 55 Figura 13. Diagrama de classes. 56 NOME DA TABELA DESCRIÇÃO Status Tabela que armazena o status dos problemas. Chamado Tabela que armazena todo os histórico dos chamados. Caso Tabela que armazena os casos envolvidos, juntamente com o objeto e sua categoria, assim como uma solução e o status do caso. Caso_problema Tabela que armazena o relacionamento entre os casos e os conjuntos, assim como os problemas e o status dos problemas. prob_status Tabela que armazena o relacionamento entre os objetos, conjunto, problemas e status dos problemas. Problema Tabela que armazena os problemas relativos dos conjuntos. conj_prob Tabela que armazena o relacionamento entre objeto, conjunto e os problemas. Onde serão definidos os pesos dos problemas para busca de soluções. Objeto Tabela que armazena informações sobre os objetos que são tratados no sistema. Categoria Tabela que armazena as categorias dos objetos. Conj_obj Tabela que armazena o relacionamento entre os conjuntos e os objetos. Conjunto Tabela que armazena os conjuntos. Usuário Tabela que armazena todas as informações relativas aos usuários Tabela 2. Descrição das tabelas de dados. 57 NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_caso INTEIRO Código do caso cod_categoria INTEIRO Código da categoria dos objetos desc_caso VARCHAR(255) Descrição do caso solução_caso VARCHAR(255) Solução aplicada para o ocorrido. status_caso VARCHAR(45) Status do caso Tabela 3. Dicionário de Dados da Tabela Casos. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_caso INTEIRO Código do caso cod_categoria INTEIRO Código da categoria de objeto cod_conjunto INTEIRO Código do conjunto cod_objeto INTEIRO Código do objeto cod_problema INTEIRO Código do problema cod_status INTEIRO Código do Status Tabela 4. Dicionário de Dados da Tabela Caso_problema. 58 problema NOME DO ATRIBUTO cod_caso TIPO / TAMANHO INTEIRO DESCRIÇÃO Código do caso no qual o atendimento refere-se cod_chamado INTEIRO Código do chamado cod_user INTEIRO Código do usuário date_chamado DATE Data do chamado hora_chamado DATETIME Hora do chamado VARCHAR(20) Prioridade no atendimento do chamado prioridade_chamado Tabela 5. Dicionário de Dados da Tabela Chamado. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_problema INTEIRO Código do problema desc_problema VARCAHR(45) Descrição do problema Tabela 6. Dicionário de Dados da Tabela Problema. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_status INTEIRO Código do Status desc_status VARCHAR(45) Descrição do Status Tabela 7. Dicionário de Dados da Tabela Status. 59 NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_categoria INTEIRO Código da categoria dos objetos desc_categoria VARCHAR(45) Descrição da categoria dos objetos Tabela 8. Dicionário de Dados da Tabela Categoria. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_conjunto INTEIRO Código do conjunto desc_conjunto VARCHAR(45) Descrição do conjunto Tabela 9. Dicionário de Dados da Tabela Conjunto. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO Cod_categoria INTEIRO Código da categoria do objeto Cod_conjunto INTEIRO Código do conjunto Cod_objeto INTEIRO Código do objeto Tabela 10. Dicionário de Dados da Tabela Conj_obj. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_categoria INTEIRO Código da categoria do objeto cod_objeto INTEIRO Código do objeto desc_objeto VARCHAR(45) Descrição do objeto Tabela 11. Dicionário de Dados da Tabela Objeto. 60 NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_categoria INTEIRO Código da categoria do objeto cod_conjunto INTEIRO Código do conjunto cod_objeto INTEIRO Código do objeto cod_problema INTEIRO Código do problema peso INTEIRO Peso configurado para o problema Tabela 12. Dicionário de Dados da Tabela Conj_prob. NOME DO ATRIBUTO TIPO / TAMANHO DESCRIÇÃO cod_categoria INTEIRO Código da categoria do objeto cod_conjunto INTEIRO Código do conjunto cod_objeto INTEIRO Código do objeto cod_problema INTEIRO Código do problema cod_status INTEIRO Código do status Tabela 13. Dicionário de Dados da Tabela prob_status. 61 NOME DO ATRIBUTO cod_user TIPO / TAMANHO DESCRIÇÃO INTEIRO Código do usuário contato_user VARCHAR(255) Endereço do usuário email_user VARCHAR(45) E-mail do usuário historico_user VARCHAR(255) Histórico de consultas do usuário login_user VARCHAR(20) Login do usuário nome_user VARCHAR(30) Nome do usuário permissao_user VARCHAR(20) Permissão do usuário (Técnico, Administrador ou Usuário) senha_user VARCHAR(20) Senha do usuário Tabela 14. Dicionário de Dados da Tabela Usuário. 3.2.3 Diagrama Entidade-Relacionamento (ER) Diagrama entidade relacionamento (ER) é um modelo diagramático que descreve o modelo de dados de um sistema com alto nível de abstração. Ele é a principal representação do Modelo de Entidades e Relacionamentos. Sua maior aplicação é para visualizar o relacionamento entre tabelas, no qual as relações são construídas através da associação de um ou mais atributos destas tabelas que farão parte do projeto físico do banco de dados. 62 Figura 14. Diagrama Entidade Relacionamento (ER). 3.2.4 Diagrama de seqüência O diagrama de seqüência é uma forma de demonstrar a execução das atividades dentro de um sistema e as trocas de mensagens entre os seus componentes. 63 Figura 15. Configuração de usuário. 64 Figura 16. Configura Casos. 65 Figura 17. Consultar Casos. 66 3.3 TECNOLOGIAS UTILIZADAS NO PROJETO Tendo em vista a necessidade do desenvolvimento de um sistema voltado para web, dentre todas as outras tecnologias, optou-se em utilizar as tecnologias PHP e MySQL, pelas vantagens citadas a seguir.. O MySQL é um sistema de gerenciamento de banco de dados, que utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) como interface. Algumas vantagens da sua utilização são: • Possui código aberto e funciona em um grande número de sistemas operacionais; • Bom desempenho e estabilidade; • Exige pouco dos recursos de hardware; • Facilidade de uso; • É um software livre; e • Compatibilidade com diversas linguagens de programação. PHP é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na internet. Apesar de ser uma linguagem de fácil aprendizagem e de utilização para pequenos scripts dinâmicos simples, o PHP é uma poderosa linguagem orientada a objetos. Dentre as principais vantagens da sua utilização estão: • Velocidade; • Facilidade na sua utilização; • Estruturado e orientada a objeto; e • Portabilidade, ou seja, roda em qualquer plataforma; 67 3.4 INTERFACE DO SISTEMA Neste capítulo serão apresentadas as telas do sistema. Serão apresentadas as telas para o módulo administrador e logo após, a tela para o módulo do usuário, dentre elas as telas de consulta e cadastro que compõem todo o escopo do sistema. A figura 18 apresenta a tela inicial do sistema, onde permite que os usuários devidamente cadastrados pelo administrador tenham acesso ao sistema, de acordo com a permissão previamente liberada pelo administrador do sistema, é aberto uma área de trabalho diferente tanto para administrador quanto para usuário. Figura 18. Tela de Login. 68 A figura 19 mostra a tela principal do modulo de administrador, onde são disponibilizadas todas as opções que esse administrador possui. Ao final do menu é disponibilizada a opção para alteração de senha do usuário logado. Figura 19. Tela de apresentação do módulo administrador. 69 A figura 20 apresenta a tela de consulta de problemas cadastrados, ela apresenta uma lista de todos os problemas cadastrados no sistema, assim bem como soluções aplicadas e se o mesmo está disponível para interação com o RBC. Através de a tela a seguir o administrador tem a opção de excluir situações que não sejam úteis à base de caso, tornando as situações mais confíáveis. Figura 20. Tela de consulta de problemas cadastrados. 70 A figura 21 exibe a tela de cadastro de categoria ou produto, disponibilizando para o administrador a inserção no sistema de novas categorias para organização de sua base de dados. Figura 21. Tela de cadastro de categorias. 71 A figura 22 apresenta a tela de cadastro de estrutura de produtos, permitindo ao administrador cadastrar as perguntas que farão a composição de uma determinada situação, assim bem como os pesos das perguntas e o peso das respostas, decisivos no calculo do RBC.. Figura 22. Tela de cadastro de estrutura de produto. 72 A figura 23 apresenta a tela para cadastro de novos casos, que será a base de todas as consultas, efetuadas pelo sistema utilizando o Raciocínio Baseado em Casos, assim como em conjunto permitindo cadastrar uma solução e um status para esse determinado caso, tudo isso separado de acordo com a sua categoria. Figura 23. Tela de cadastro de caso. 73 A figura 24 apresenta todos os usuários cadastrados nos sistema, para que o administrador possa efetuar a exclusão, alteração, assim como o cadastramento de novos usuários, que farão parte dessa lista. Figura 24. Tela de configuração de usuários. 74 A figura 25 apresenta a tela de alteração de dados do usuário que foi selecionado na tela anterior, disponibilizando ao administrador fazer alteração de qualquer dado desse determinado usuário sem restrição, assim como as permissões que esse usuário dispõe no sistema. Figura 25. Tela de alteração dos dados do usuário. 75 A figuras 26 apresenta a tela de cadastro de novos usuários pelo administrador, onde o mesmo tem a opção de cadastrar todos os dados, inclusive as permissões no sistema que usuário irá possuir. Figura 26. Tela de cadastro de usuário. 76 A figura 27 apresenta a tela para alteração de senha do usuário logado, para que o administrador possa mudar apenas a sua própria senha. Figura 27. Tela de alteração de senha. 77 A figura 28 mostra a tela de apresentação do módulo do usuário, com opções bem mais restritas que o administrador, dando ênfase apenas no cadastramento de problemas e na busca por soluções, assim como o envio de mensagens ao Help Desk. Figura 28. Tela de apresentação do módulo do usuário. 78 Na figura 29, o sistema apresenta a tela para consulta de soluções, onde baseado em uma dúvida do usuário, dividindo-na por categoria utilizando a técnica do Raciocínio Baseado em Casos, o sistema apresentará as possíveis soluções. Figura 29. Tela de consulta solução. 79 Na figura 30 é disponibilizada ao usuário consultar o seu histórico analisando todas as consultas já feita e podendo também refazer consultas anteriormente executadas. Figura 30. Tela de consulta histórico. 80 Na figura 31 é apresentada a tela para alteração da senha do usuário logado no sistema, mesma situação apresentada no modulo do administrador. Figura 31. Tela de alteração de senha. 3.5 TESTES A etapa de teste buscou como objetivo principal, acompanhar e analisar procedimentos durante a utilização do sistema. Esta etapa foi realizada com a ajuda de um técnico de qualidade de software em uma empresa de desenvolvimento de software, avaliando as respostas do sistema, assim como a sua administração, tais como organização dos usuários, casos e problemas. A primeira etapa de avaliação do sistema foi utilizada uma versão Beta, sem layout, visando apenas analisar a questão das funcionalidades do sistema, assim como as respostas, dessa forma foram localizados alguns pontos onde será necessário uma atenção para com as 81 informações disponíveis para utilização. Em um segundo momento foi analisado a usabilidade do sistema, já na versão com layout, visando verificar a quantidade de informações trazidas na tela, tais como seqüência de procedimento, cores, posições dos botões e facilidades de acesso. Dentro do processo de avaliação do sistema, a questão dos problemas, ou seja, definição de variáveis, assim bem como os seus respectivos pesos ficaram a cargo de serem definidos através de sugestões de funcionários do suporte, se fundando na experiência de conhecer determinadas situações e cenários no processo de busca por soluções. Durante o processo de avaliação e recuperação dos casos, foram seguidos alguns critérios, quando um caso é avaliado, o sistema busca na base de dados todos os casos relativos à categoria escolhida. Após a pesquisa dos casos utilizando a técnica de inteligência artificial o Raciocínio Baseado em Casos, o sistema lista todas as situações ou problemas que estão diretamente ligados. Tendo em si listados todos os problemas, o sistema efetua a consulta para verificar se o problema atual se assemelha diretamente ou mesmo se iguala a algum dos casos já existentes na base, se for igual aplica-se a fórmula para calcular a similaridade, caso as condições não sejam favoráveis o sistema segue para o próximo caso. Durante a avaliação do sistema, foi constatado uma possível melhora no índice de acertos, para uma amostra de 30 casos foi observado um acerto de cerca de 65%, sendo constatada um índice de 73% quando a base de casos atingiu a amostra de 60 casos, sendo fundamental para essa mudança a melhoria e refinamento dos dados já contidos na base e o aumento da quantidade de casos cadastrado na base de casos do sistema. Para um determinado produto onde foram cadastrados 25 casos conseguiu-se uma similaridade de 91%, em outra situação um produto onde a base de casos possui 15 casos, conseguiu-se uma similaridade de 70% e para um determinado produto onde foram cadastrados 8 casos conseguiu-se uma similaridade de 56,43%. Durante a etapa de testes o ponto que foi determinante na soluções dos problemas apresentados ao sistema, foi a sinceridade do administrador, a quem efetua grande parte dos cadastramentos no sistema e do usuário que efetua as consultas, pois o sucesso de cada consulta é relacionado ao quanto próximo da situação real ambos descrevem suas posições para o sistema. 82 4 CONCLUSÃO Este trabalho focou-se principalmente em um software capaz de auxiliar técnicos e pessoas que tenham contato com equipamentos ou serviços de informática direta ou indiretamente, utilizando-se do Raciocínio Baseado em Casos. Um RBC é uma técnica de Inteligência Artificial que facilita a obtenção de soluções atendendo as necessidades de seus usuários, situação essa que motivou a escolha da empresa para a realização dos teste do sistema, empresa que atualmente utiliza-se de um módulo no seu sistema de suporte, onde a busca por soluções consiste apenas na comparação de palavras similares, exemplificando em seguir uma série de informações que ajudam o técnico a selecionar o melhor caso para resolução do problema, porém não indica uma solução específica para situação apresentada. O Sistema proposto foi desenvolvido com base nas informações coletadas junto a uma base de dados utilizada na empresa onde se fundamentaram os testes, utilizando-se de situações reais, procurando obter mais facilidade nos pontos importantes e variáveis fundamentais no funcionamento do RBC, sem tornar o sistema grande ou complexo, que dificulte a sua utilização por usuários com menos conhecimento nas rotinas de informática. Inicialmente, foi analisada a necessidade de fixar categorias específicas para a distribuição dos casos, porém verificou-se a possibilidade de disponibilizar ao administrador, pois este, poderia fazer organização e a divisão das categorias, com a finalidade de tornar o sistema o mais adaptável possível de acordo com cada tipo de utilização. Dentro das necessidades encontradas, a utilização do Raciocínio Baseado em Casos, se mostrou muito efetivo para as situações propostas. Para uma utilização mais eficaz das características que o sistema apresenta, torna-se necessário uma quantidade maior de informações em sua base de dados, visando uma melhora nas respostas apresentadas. A medida de similaridade utilizada pelo RBC no desenvolvimento deste projeto foi a do vizinho mais próximo. Desta forma o RBC ficou responsável pela busca de resultados similares em sua base de conhecimento, visando auxiliar o técnico de informática ou mesmo sanar diretamente as dúvidas do usuário que utiliza o sistema. 83 Para trabalhos futuros, propõe-se a implementação de novas funcionalidades no sistema, modificação da interface focando-se na necessidade de tornar o ambiente de trabalho adaptativo as necessidades de cada usuário, assim como o estudo de novos métodos de recuperação que possam proporcionar respostas mais objetivas e resultados mais exatos. REFERÊNCIAS BIBLIOGRÁFICAS AUTOMIDIA – CBR – AUTOMIDIA informática. Disponível em <http://www.automidia.com.br/>. Acesso em: 16 set. 2007. BALBINOTTI, Alexandre Magnus. Sistemas de Informações baseado em Sistemas Especialistas e Raciocínio Baseado em Casos para Auxiliar na Prática Desportiva na UNIVALI, 2006. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006. CAMARGO, Kátia Gavranich. Inteligência Artificial Aplicada à Nutrição na Prescrição de Planos Alimentares, 1999. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis, 1999. COHEN, Roberto. Competências preferidas para Help Desk e Service Desk, 2005. Trabalho de Conclusão de Curso (Graduação em Psicologia nas Organizações) – Faculdade de Psicologia, Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre, 2005. FIREMAN - PROFESSIONAL – SIAL software. Disponível em <http://www.fireman.com.br/p-pro.php>. Acesso em: 15 set. 2007. GROSSMANN JR., Helmuth . Sistema Especialista para Auxílio ao Diagnóstico de Problemas em Computadores Utilizando Raciocínio Baseado em Casos, 2002. Dissertação (Mestrado) – Mestrado em Ciência da Computação Área de Concentração Sistemas de Conhecimento, Universidade Federal de Santa Catarina, Florianópolis, 2002. HELDESK-3 – TREE TOOLS Tecnologia da Informação. Disponível em < http://www.treetools.com.br/tti/>. Acesso em: 20 set. 2007. INFOWESTER . Disponível em < http://www.infowester.com/servapach.php>. Acesso em: 15 out. 2007. IMASTERS - PHP . Disponível em < http://www.imasters.com.br/secao/php>. Acesso em: 15 out. 2007. 84 LAGEMANN, Gerson Volney. RBC para o Problema de Suporte ao Cliente nas Empresas de Prestação de Serviço de Software: O Caso Datasul, 1998. Dissertação (Mestrado) – Programa de Pós-Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis, 1998. LUGER, George F. Inteligência Artificial: estruturas e estratégias para a solução de problemas complexos. 4 ed. Porto Alegre: E. Artmed, 2002. MATOS, Ivan Carlos. Utilização de Raciocínio Baseado em Casos na Determinação de Aparelhos Auditivos Via Web. São José, 2007. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, São José, 2007. MENEZES, José Vanderlei de. Sistema de Help Desk Utilizando Raciocínio Baseado em Casos, 2006. 100 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006. MIOTTO, Marcelo. Programação Alimentar Utilizando RBC, 2006. 117 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006. MYSQL – Manual de Referência do MySQL 4.1 . Disponível em < http://dev.mysql.com/doc/refman/4.1/pt/index.html>. Acesso em: 16 out. 2007. MYSQL – Brasil . Disponível em < http://www.mysqlbrasil.com.br/>. Acesso em: 16 out. 2007. NASCIMENTO JR., Cairo L.;YONEYAMA, Takashi. Inteligência Artificial em controle e altomação. 1 ed. São Paulo: E. Blücher, 2000. 218p. PHP - MAGAZINE. Disponível em < http://www.phpmagazine.com.br/>. Acesso em: 16 out. 2007. RABUSKE, Renato Antônio. Inteligência Artificial. Florianópolis: E. UFSC, 1995. REVISTA - PHP . Disponível em < http://www.revistaphp.com.br/>. Acesso em: 16 out. 2007. RUSSEL, Stuart; NORVIG, Peter. Inteligência Artificial. Rio de Janeiro:Elsevier, 2004. SILVA, Jaine José da. Help Desk com Sistema RBC para as Gerências de Aplicativos do Banco do Brasil, 2004. Trabalho de Conclusão de Curso (Especialização) – Curso de Especialização em Desenvolvimento, Segurança e Qualidade na Internet, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2004. 85 THÉ, Maria Alice Lagos. Raciocínio Baseado em Casos: uma abordagem fuzzy para diagnóstico nutricional, 2001. Tese (Doutorado) – Programa de Pós Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis, 2001. WANGENHEIM A. Von; WANGENHEIM, C. G. Von. Raciocínio Baseado em Casos. Barueri; Manole, 2003. ZAGUINI NETO, Adolfo. Aplicando a Técnica de Raciocínio Baseado em Casos para o Auxilio do Profissional Homeopata na busca do melhor Tratamento. Itajaí, 2007. 60 folhas. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)-Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí,2007. 86