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
Download

Modelo de TCC para o Curso de Ciência da Computação da UNIVALI