103
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 UTILIZANDO RACIOCÍNIO BASEADO EM CASOS Área de Inteligência Artificial por José Vanderlei de Menezes Anita Maria da Rocha Fernandes, Drª. Orientadora Itajaí (SC), junho de 2006

Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

Embed Size (px)

Citation preview

Page 1: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

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 UTILIZANDO RACIOCÍNIO BASEADO EM CASOS

Área de Inteligência Artificial

por

José Vanderlei de Menezes

Anita Maria da Rocha Fernandes, Drª. Orientadora

Itajaí (SC), junho de 2006

Page 2: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

i

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 UTILIZANDO RACIOCÍNIO BASEADO EM CASOS

Área de Área de Inteligência Artificial

por

José Vanderlei de Menezes 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: Anita Maria da Rocha Fernandes, Drª.

Itajaí (SC), junho de 2006

Page 3: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

ii

SUMÁRIO

LISTA DE ABREVIATURAS..................................................................iv

LISTA DE FIGURAS.................................................................................v

LISTA DE TABELAS...............................................................................vi LISTA DE EQUAÇÕES ..........................................................................vii RESUMO..................................................................................................viii ABSTRACT................................................................................................ix

1. INTRODUÇÃO ......................................................................................1 1.1. OBJETIVOS ..................................................................................................... 4 1.1.1. Objetivo Geral................................................................................................ 4 1.1.2. Objetivos Específicos...................................................................................... 4 1.2. METODOLOGIA............................................................................................. 5 1.3. ESTRUTURA DO TRABALHO ..................................................................... 6

2. FUNDAMENTAÇÃO TEÓRICA ........................................................8 2.1. INTELIGÊNCIA ARTIFICIAL...................................................................... 8 2.1.1. Histórico ......................................................................................................... 8 2.1.2. Técnicas de Inteligência Artificial ............................................................... 10 2.2. RACIOCÍNIO BASEADO EM CASOS........................................................ 10 2.2.1. Tipos de Problemas Resolvidos Através de RBC ....................................... 12 2.2.2. Principais Etapas do Ciclo de Desenvolvimento de um Sistema de RBC.. 13 2.3. PESQUISA E ANÁLISE DE SOLUÇÕES SIMILARES............................. 26 2.3.1. O iHotel......................................................................................................... 26 2.3.2. SistLog .......................................................................................................... 28 2.3.3. RBC para o Problema de Suporte ao Cliente nas Empresas de Prestação de Serviço de Software: O Caso Datasul............................................................... 32 2.3.4. Avaliação Geral Sobre as Soluções Estudadas ........................................... 34 2.4. TECNOLOGIAS UTILIZADAS NO SISTEMA.......................................... 35 2.4.1. Java ............................................................................................................... 35 2.4.2. JSP ................................................................................................................ 38 2.4.3. Padrão MVC ................................................................................................ 41 2.4.4. MySQL ......................................................................................................... 42 2.4.5. NetBeans ....................................................................................................... 44

3. DESENVOLVIMENTO ......................................................................46 3.1. INTRODUÇÃO .............................................................................................. 46 3.2. SISTEMA PROPOSTO ................................................................................. 46 3.3. MODELAGEM DO SISTEMA ..................................................................... 48 3.3.1. Análise de Requisitos ................................................................................... 48 3.3.2. Diagramas de Casos de Uso ......................................................................... 49

Page 4: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

iii

3.4. ANÁLISE DOS DADOS ................................................................................ 52 3.5. ESTRUTURAÇÃO DO RBC......................................................................... 52 3.5.1. Aquisição do Conhecimento ........................................................................ 53 3.5.2. Representação dos Casos ............................................................................. 54 3.5.3. Método de Recuperação............................................................................... 56 3.5.4. Adaptação..................................................................................................... 58 3.6. IMPLEMENTAÇÃO DO PROTÓTIPO DO SISTEMA ............................. 59 3.6.1. Arquitetura do Sistema................................................................................ 60 3.6.2. Módulos do Sistema ..................................................................................... 64 3.7. VALIDAÇÃO E TESTES .............................................................................. 72

4. CONCLUSÃO ......................................................................................73

REFERÊNCIAS BIBLIOGRÁFICAS ...................................................75

A MODELAGEM DO SISTEMA..........................................................78 A.1 DIAGRAMAS DE CASOS DE USO ............................................................. 78 A.2 DIAGRAMAS DE SEQUENCIA .................................................................. 85 A.3 DIAGRAMAS ENTIDADE RELACIONAMENTO.................................... 89 A.4 DESCRIÇÃO DAS TABELAS DE DADOS ................................................. 91 A.5 DESCRIÇÃO DOS ATRIBUTOS DAS TABELAS ..................................... 91

Page 5: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

iv

LISTA DE ABREVIATURAS

AAAI Innovative Application in Artificial Inteligence Award ASP Active Server Pages B2B Business to Business B2C Business to Consumer CAD/CAM Computer Aided Design/Computer Aided Manufacturing CPU Central Processing Unit EI Entidade de Informação FO Ficha de Ocorrência HOMER Hotline Mit Erfahrung HTML HiperText Markup Language IA Inteligência Artificial IB3 Instance Based 3 IBL Instance Based Language ID3 Induction of Decision IDE Integrated Development Environment IE Internet Explorer IIS Internet Information Server J2EE Java 2 Enterprise Edition JDB Java Debugger JDBC Java DataBase Connectivity JDK Java Development Kit JRE Java Runtime Environment JSP Java Server Pages JVM Java Virtual Machine MOP Memory Organization Packets MVC Model View Controller ODBC Open DataBase Connectivity ODBMS Object-Oriented Database Management System RBC Raciocínio Baseado em Casos RRC Rede de Recuperação de Casos SC Santa Catarina TCC Trabalho de Conclusão de Curso UML Unified Modeling Language UNIVALI Universidade do Vale do Itajaí XML eXtensible Markup Language

Page 6: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

v

LISTA DE FIGURAS

Figura 1. Ciclo de um RBC Fonte: Adaptado de Fernandes (2003) ................................................14 Figura 2. Estrutura de dados da recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003)

..............................................................................................................................................24 Figura 3. Algoritmo de recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003).........24 Figura 4. Cadastro de Notas Fonte: Miranda (2000).......................................................................30 Figura 5. Cadastro de Pesos Fonte: Miranda (2000) .......................................................................30 Figura 6. Tela Resultado da Consulta Fonte: Miranda (2000).........................................................31 Figura 7. Tela de consulta do Help Desk Fonte: Adaptado de Lagemann (1988) ............................33 Figura 8. Tela com caso recuperado Fonte: Adaptado de Lagemann (1988) ...................................34 Figura 9. Modelo de ambiente de desenvolvimento Java Fonte: Adaptado de Saofrancisco (2006) 37 Figura 10. Fluxo de uma solicitação de um arquivo JSP. Fonte: Unicap (2001)..............................39 Figura 11. Exemplo de arquitetura de servlets. Fonte: Adaptado de ADTMAG (2006) ..................41 Figura 12. Arquitetura do padrão MVC. Fonte: Adaptado de JAVANOROESTE (2006) ...............42 Figura 13. Requisitos Funcionais ...................................................................................................48 Figura 14. Requisitos Não-Funcionais ...........................................................................................49 Figura 15. Use Case do Administrador ..........................................................................................50 Figura 16. Use Case do Cliente......................................................................................................52 Figura 17. Fluxo de consulta ao RBC. ...........................................................................................53 Figura 18. Estrutura de um caso.....................................................................................................55 Figura 19. Exemplo de arquitetura do sistema em um servidor Linux. Fonte: Adaptado de AKADIA

(2006)....................................................................................................................................61 Figura 20. Estrutura de diretórios do NetBeans..............................................................................62 Figura 21. Estrutura de pacotes......................................................................................................64 Figura 22. Exemplo do arquivo conf.properties Fonte: PortalJava (2005).......................................64 Figura 23. Tela inicial do sistema ..................................................................................................65 Figura 24. Tela consulta de casos parte 1 .......................................................................................65 Figura 25. Tela lista de produtos vazia...........................................................................................66 Figura 26. Tela lista de produtos preenchida. .................................................................................66 Figura 27. Tela consulta de casos parte 2. ......................................................................................67 Figura 28. Tela resultado da consulta.............................................................................................67 Figura 29. Tela de login.................................................................................................................68 Figura 30. Tela estrutura de produto. .............................................................................................69 Figura 31. Tela cadastro de problemas. ..........................................................................................70 Figura 32. Tela cadastro de estados................................................................................................70 Figura 33. Tela estrutura de um caso..............................................................................................71 Figura 34. Diagrama de Seqüência – Consulta Caso ......................................................................86 Figura 35. Diagrama de Seqüência – Manutenção de Usuários .....................................................87 Figura 36. Diagrama de Seqüência – Manutenção de Casos...........................................................88 Figura 37. Modelo Lógico .............................................................................................................89 Figura 38. Modelo Físico...............................................................................................................90

Page 7: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

vi

LISTA DE TABELAS

Tabela 1. Atributos do caso e seus parâmetros. ..............................................................................57 Tabela 2. Atribuição de valores para atributos do método Contagem. ............................................57 Tabela 3. Atribuição de valores ao atributo “Como está o nível de ruído?”. ...................................57 Tabela 4. Valores dos atributos dos casos. .....................................................................................58 Tabela 5. Descrição das Tabelas de Dados utilizadas no Sistema. ..................................................91 Tabela 6. Dicionário de Dados da Tabela Caso. .............................................................................91 Tabela 7. Dicionário de Dados da Tabela Caso_Problema. ............................................................92 Tabela 8. Dicionário de Dados da Tabela Atendimentos. ...............................................................92 Tabela 9. Dicionário de Dados da Tabela Problema. ......................................................................92 Tabela 10. Dicionário de Dados da Tabela Estado. ........................................................................92 Tabela 11. Dicionário de Dados da Tabela Grupo. .........................................................................92 Tabela 12. Dicionário de Dados da Tabela Conjunto......................................................................92 Tabela 13. Dicionário de Dados da Tabela Prod_Conjunto. ...........................................................93 Tabela 14. Dicionário de Dados da Tabela Conj_Problema............................................................93 Tabela 15. Dicionário de Dados da Tabela Produto........................................................................93 Tabela 16. Dicionário de Dados da Tabela Usuário........................................................................93 Tabela 17. Dicionário de Dados da Tabela Prob_Estado. ...............................................................93

Page 8: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

vii

LISTA DE EQUAÇÕES

Equação 1......................................................................................................................................19 Equação 2......................................................................................................................................21 Equação 3......................................................................................................................................22 Equação 4......................................................................................................................................22 Equação 5......................................................................................................................................22 Equação 6......................................................................................................................................23 Equação 7......................................................................................................................................23 Equação 8......................................................................................................................................23 Equação 9......................................................................................................................................23

Page 9: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

viii

RESUMO

MENEZES, José Vanderlei de. Sistema de Help Desk Utilizando Raciocínio Baseado em Casos. Itajaí, 2006. 100, 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. Um dos grandes problemas que as indústrias de máquinas enfrentam na atualidade é fazer com que o Setor de Atendimento ao Cliente tenha capacidade de realizar um atendimento rápido, seguro e eficaz, fazendo com que os clientes tenham mais confiança e satisfação ao adquirirem seus produtos. Com o objetivo de auxiliar estas empresas em seu processo de atendimento, foi desenvolvido um sistema de Help Desk onde o cliente obtém informações e tira dúvidas sobre problemas que possam ocorrer com os produtos adquiridos, com acesso on-line e disponível 24 horas por dia. Através disso diminui-se o fluxo de atendimento via telefone diretamente com os atendentes e, além disso, proporciona para a empresa um histórico de informações sobre todos os problemas encontrados em seus produtos. Este Sistema baseou-se na técnica de RBC (Raciocínio Baseado em Casos), utilizando-se para o cálculo de similaridade o método do Vizinho Mais Próximo juntamente com o de Contagem de Características. Para seu desenvolvimento foi utilizado a linguagem de script JSP (Java Server Pages) que utiliza a tecnologia e componentes Java, e como banco de dados foi utilizado o MySQL. Palavras-chave: Help Desk. Raciocínio Baseado em Casos. Inteligência Artificial.

Page 10: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

ix

ABSTRACT

One of the great problems that the industries of machines face in the present time is to make with that the Sector of Attendance to the Customer has capacity to carry through a fast attendance, safe and efficient, making with that the customers have more confidence and satisfaction when acquiring its products. With the objective of assisting these companies in its process of attendance, a system of Help Desk was developed where the customer gets information and takes off doubts on problems that can occur with the acquired products, with access on-line and available 24 hours per day. Through this the attendance flow diminishes itself saw telephone with the attendants directly and, moreover, it provides for the company a description of information on all the problems found in its products. This System was based on the RBC technique (Reasoning Based on Cases), using for the calculation of similarity the method of the Neighbor Next together with the one to Counting of Characteristics. For its development the language of script JSP was used (Java Server Pages) that it uses the technology and Java components, and as data base was used the MySQL. Keywords: Help Desk. Case-Based Reasoning. Artificial Intelligence.

Page 11: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

1. INTRODUÇÃO

Este projeto teve como objetivo desenvolver um sistema de Help Desk para Web que utiliza

a técnica de Inteligência Artificial do Raciocínio Baseado em Casos para prover aos clientes de uma

empresa da cidade de Navegantes. Através deste sistema o cliente tem um livre acesso através da

Internet, 24 horas por dia para fazer consultas em uma base de conhecimento e tentar resolver seus

problemas sem ter que entrar em contato pelo telefone com a empresa.

A Internet – Internetwork System (sistema de interconexão de rede de comunicação) é um

dos meios de comunicação mais utilizado do mundo. Atualmente milhões de pessoas já se utilizam

de seus computadores para obter informações, receber e-mail (eletronic mail – correio eletrônico),

fazer investimentos e outros negócios afins que antes eram feitos com um custo muito maior e em

algumas das vezes sem sucesso. Internet é muito mais do que uma rede de computadores ou

serviços de informações, ela pode dar ao ser humano a liberdade de se comunicar, informar, e se

divertir (KUHNEN, 2000).

O Raciocínio Baseado em Casos é uma técnica usada para encontrar soluções para um novo

problema usando soluções adotadas para problemas similares já resolvidos. A idéia básica de RBC

é que os humanos modificam a estratégia de solução de um novo problema baseados em

conhecimento e experiências com problemas passados similares, adaptando as soluções, usando-os

para explicar novas situações, criticando novas soluções, ou inferindo sobre fatos para interpretar

novas situações ou criar uma solução para o problema atual (LAGEMANN, 1998).

Sistemas Help Desk, são sistemas facilitadores de informação, mas comunmente são tratados

somente como um Sistemas de Suporte Técnico. A moderna concepção de Help Desk, porém, vai

muito além do mero conceito de suporte técnico, pois a principal característica dos sistemas Help

Desk hoje é a de facilitador de “quaisquer informações” ao usuário, não importando se esta

facilitação seja de natureza técnica computacional ou não. O conteúdo desta facilitação, portanto,

pode ser dos mais variados tipos, nem mesmo importa se a tecnologia usada na modelagem do Help

Desk venha a envolver componentes inteligentes ou não. Dizemos então um sistema help desk

constitui um mecanismo computacional facilitador de informação do tipo help desk = <Pergunta,

Resposta>, onde tanto a Pergunta em apreço se refere àquela de clientes e/ou usuários quaisquer, e

a Resposta do sistema se refere a um apoio informacional bem definido em seu domínio.

Page 12: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

2

O atendimento a clientes é um ponto que merece atenção especial dentro de uma indústria,

seja ela de qual ramo for. São os clientes que compram os produtos e por isso necessitam de

orientações sobre utilização, procedimentos de montagem, características técnicas, e principalmente

reclamações e dúvidas sobre o mau funcionamento dos produtos ou sobre procedimentos de

utilização aplicados de maneira errada.

Com a inclusão da informática dentro das indústrias este tipo de atendimento tem tido uma

melhora constante, e dentro de uma indústria de produtos de jardinagem da cidade de Navegantes-

SC, não é diferente. Foi pensando nisto que se levantou a necessidade de criação de um sistema

informatizado para automatizar o acesso dos clientes às informações sobre os produtos, sem que

fosse preciso ligar diretamente para o Setor de Atendimento ao Cliente.

Melhorar o atendimento ao cliente é no momento uma das maiores preocupações das

corporações, e por isso a grande maioria delas decidiu colocar à disposição de seus clientes,

ferramentas que facilitem esta interação. Entre as ferramentas mais utilizadas estão os sistemas de

Help Desk, que são sistemas que utilizam técnicas de Inteligência Artificial (IA), por exemplo,

Raciocínio Baseado em Casos (RBC), agentes, dentre outras. Estes sistemas são disponibilizados

através da Internet, para que o próprio cliente possa acessar o suporte da empresa, e através de uma

interface amigável e cognitiva possa descrever seu problema e tentar resolvê-lo sem ter que entrar

em contato diretamente com a empresa. Este tipo de sistema diminui significativamente o suporte

telefônico e conseqüentemente reduz os custos destinados ao atendimento ao cliente.

Muitos destes Help Desk são voltados para a Internet, e dentro de pouco tempo ela será o

meio de comunicação mais utilizado do mundo, pois atualmente milhões de pessoas utilizam seus

computadores para obter informações, receber e-mail, conversar a longa distância com custo

reduzido, fazer compras, manipular suas contas bancárias, fazer investimentos no mercado externo

etc., através da maior rede do mundo. A Internet pode ser vista também como um grupo de recursos

de informação global, onde esses recursos são tão vastos que estão além da compreensão do ser

humano (KUHNEN, 2000).

A utilização de técnicas de IA no desenvolvimento de sistemas computacionais possibilita

agregar aspectos da cognição humana na resolução de problemas que exigem conhecimentos

especialistas (RAMALHO, 1999).

Page 13: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

3

Um sistema de Help Desk para Web utilizando Raciocínio Baseado em Casos envolve

diferentes conceitos de diversas áreas da Ciência da computação como banco de dados, engenharia

de software, redes, linguagem de programação multiplataforma e técnicas de inteligência artificial.

Os sistemas de RBC atualmente aparecem como uma solução muito aplicável a diversas

áreas, e algumas destas áreas podem ser citadas, como: Call Centers, suporte técnico e Help Desk,

hotelaria, suporte a decisão, suporte a vendas, e muitas outras áreas.

Tomando como base uma indústria de máquinas para jardinagem situada da cidade de

Navegantes, que atende todo território nacional, foi proposto o desenvolvimento de um sistema de

Help Desk inteligente voltado especificamente para o Setor de Atendimento ao Cliente, pois o

atendimento atualmente é realizado através do telefone e possui um grande número de chamadas

diariamente, que são atendidas de maneira lenta e às vezes incorreta, o que acarreta custos tanto

para a empresa quanto para o cliente.

A grande motivação para o desenvolvimento deste sistema foi principalmente devido à

necessidade de possuir um meio de comunicação rápido e de fácil acesso que possibilitasse uma

conexão direta entre a indústria e o cliente final. A solução desenvolvida possibilita esta interação

direta do usuário final através da utilização de um sistema de Help Desk, que permite um

diagnóstico preliminar rápido sobre os principais problemas que as máquinas podem apresentar.

Uma importante vantagem da implementação deste sistema é a associação de novas

tecnologias como IA e RBC, com o aproveitamento da base de dados e ferramentas de software

(sistema operacional, gerenciador de banco de dados e linguagens de programação) já existentes na

empresa. Outra vantagem que espera-se alcançar, é a melhoria da prestação de serviço ao cliente, o

que vai possibilitar uma redução dos custos com o suporte para a indústria que atualmente tem um

alto custo para manter canais de comunicações com os técnicos que atendem os clientes. Para os

clientes, está proporcionando um acesso facilitado, com um tempo de retorno em muitas situações

menor e sem ter que utilizar o serviço telefônico, e assim, reduzindo os custos em chamadas

telefônicas.

Esta ferramenta é fundamental para que a indústria se alinhe aos avanços tecnológicos e

permita que seja referência no atendimento ao cliente à distância dentro de um cenário nacional. As

técnicas de RBC que foram empregadas permitem ao cliente além de um livre acesso através da

Page 14: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

4

Web, à realização de rápidos diagnósticos sobre suas principais dúvidas referentes aos produtos

adquiridos.

1.1. Objetivos

1.1.1. Objetivo Geral

O objetivo geral deste trabalho foi desenvolver um Help Desk Inteligente para Web,

utilizando Raciocínio Baseado em Casos, que auxilie no atendimento dos clientes e colaboradores

do Setor de Atendimento ao Cliente de uma indústria fabricante de máquinas para jardinagem,

situada na cidade de Navegantes.

1.1.2. Objetivos Específicos

Os objetivos específicos deste projeto de pesquisa foram:

o Pesquisar e analisar soluções similares;

o Relacionar as vantagens e desvantagens dos sistemas pesquisados;

o Compreender as metodologias utilizadas para o desenvolvimento de um RBC;

o Determinar os requisitos exigidos pelo sistema;

o Definir a forma de representação dos casos;

o Escolher o melhor método para recuperação dos casos;

o Desenvolver estratégias de adaptação dos casos;

o Analisar as variáveis necessárias;

o Realizar a modelagem conceitual do sistema;

o Escolher a ferramenta para construção da interface do sistema;

o Implementar o sistema; e

o Realizar testes e validação do sistema.

Page 15: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

5

1.2. Metodologia

Para uma melhor elaboração deste trabalho, o mesmo foi dividido em etapas, e embora estas

etapas não sejam baseadas em nenhuma metodologia específica, elas seguem um modelo que muito

se assemelha ao espiral, de forma que a cada fase concluída a mesma pode ser revisada e avaliada.

A metodologia seguida para o desenvolvimento deste projeto baseou-se nos aspectos descritos a

seguir.

O levantamento bibliográfico foi realizado através de estudos sobre conceitos de Inteligência

Artificial, mais especificamente sobre Sistemas de Raciocínio Baseado em Casos e todas as etapas

que envolvem esta técnica, como a representação dos casos, a indexação, recuperação, ajuste da

situação e aprendizado. Também foram pesquisados alguns conceitos sobre Help Desks para web e

atendimento ao cliente. Todos os estudos e pesquisas necessários para o desenvolvimento deste

trabalho foram realizados através de consultas a livros, artigos, dissertações e sites da Web.

O ponto inicial foi uma seleção de materiais considerados importantes para o

desenvolvimento de um projeto na área de pesquisa de IA. Tendo em mãos este material, iniciou-se

então o processo de estudo e redação dos primeiros capítulos a fazer parte da documentação do

TCC.

Em uma primeira etapa foi realizado um estudo sobre o problema a ser resolvido, e de que

forma desenvolver uma aplicação que melhor solucionasse o caso. Para isto, foi realizada uma

pesquisa sobre sistemas de Help Desks e sistemas de RBC que pudessem contribuir para a

formulação e estruturação do sistema a ser desenvolvido.

Posteriormente foi planejada, através de reuniões realizadas junto à empresa, qual seria a

melhor forma de aplicação do sistema, para que o mesmo tivesse um aproveitamento abrangente no

auxílio aos problemas levantados, e assim foi definido um esboço para início do projeto.

Após ter uma idéia preliminar do que se precisava alcançar, foi realizado um estudo sobre as

tecnologias disponíveis para utilização no desenvolvimento do projeto, tendo em vista dois pontos

principais: aumentar o conhecimento sobre tecnologias e metodologias atualmente disponíveis, e

obter ferramentas que pudessem atender as necessidades apresentadas para o desenvolvimento do

sistema.

Page 16: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

6

A análise e a modelagem conceitual foram realizadas segundo conceitos de UML (Unified

Modeling Language) aplicados às características do escopo do sistema, como, portabilidade para

Web, utilização de técnicas de IA, banco de dados, etc. Para melhor representação e documentação

do sistema, foram utilizados os principais diagramas UML como: diagrama de casos de uso,

diagrama de seqüência e diagrama de entidade relacionamento, para que facilitassem a etapa de

implementação do protótipo.

A escolhas das ferramentas para implementação do sistema foi realizada principalmente

através de um estudo sobre ferramentas multiplataforma que possibilitam uma maior

compatibilidade para distribuição do sistema, e ferramntas freeware ou Open Source, pois além de

serem muito utilizadas no mercado e atenderem os requisitos para o desenvolvimento do sistema,

não houve custo de aquisição para a empresa. Da mesma maneira também foi escolhida a IDE para

implementação do modelo, servidor de páginas, e modelo de implementação a ser adotado.

A última etapa realizada foi a implementação completa de um protótipo do sistema na

linguagem de programação Java, mais especificamente JSP (Java Server Pages), bem como foi

realizado o levantamento das informações necessárias para população da base inicial de casos, onde

ficou a cargo dos técnicos da empresa a alimentação da base, bem como a criação das variáveis

necessárias para alimentar a base do sistema. Na seqüência foram realizados testes de cadastros em

todos os módulos bem como a validação dos primeiros resultados obtidos na consulta de casos

através do módulo de suporte, onde o cliente terá o acesso.

1.3. Estrutura do Trabalho

O presente trabalho está dividido em quatro capítulos: introdução, fundamentação teórica,

desenvolvimento e conclusões.

Introdução: este capítulo é composto pela introdução, que é uma descrição geral sobre o

problema, sua justificativa e como resolver; pelos objetivos gerais e específicos, que definem quais

as atividades que se pretende desenvolver para alcançar os objetivos; a metodologia, que descreve

como cada objetivo foi alcançado; e a estrutura do trabalho que está sendo descrita;

Fundamentação teórica: este capítulo é composto por vários sub-capítulos que descrevem

a Inteligência Artificial, suas definições, características e principais técnicas envolvidas no presente

trabalho; a técnica de Raciocínio Baseado em Casos, problemas que podem ser resolvidos através

Page 17: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

7

desta técnica, etapas que compreendem o ciclo de desenvolvimento de um RBC, e seus respectivos

métodos;

Desenvolvimento: este capítulo é composto pelas etapas de análise dos requisitos

necessários para o desenvolvimento do protótipo, modelagem e estruturação da base de

conhecimento criada e os principais diagramas de casos de uso e de seqüência. Também descreve

como foi desenvolvido o sistema; quais as tecnologias e metodologias, e como elas foram

utilizadas; como foram associadas as etapas do ciclo de vida do RBC ao projeto; a estrutura geral do

sistema, instruções sobre a operação e os módulos que compõe o sistema;

Conclusões: este capítulo é composto pela etapa de testes e validações do sistema, sobre

como qual foi seu comportamento e quais objetivos foram alcançados; pela descrição de alguns

problemas enfrentados, possíveis falhas de modelagem, considerações sobre o processo de

desenvolvimento como um todo, bem como indicações para trabalhos futuros que possam vir a

serem feitos nesta área de estudos.

Page 18: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

2. FUNDAMENTAÇÃO TEÓRICA

2.1. 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 do mesmo (FERNANDES, 2003).

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

variadas 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 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 determinado estímulo) (NASCIMENTO JR. & YONEYAMA,

2000).

IA é o estudo de como fazer os computadores realizarem tarefas que, no momento, são feitas

melhor por pessoas (Rich, 1983 apud NASCIMENTO JR. & YONEYAMA, 2000). Para Luger e

Stubblefield, Inteligência Artificial é o ramo da computação preocupada com a automação de

comportamento inteligente (FERNANDES, 2000).

2.1.1. Histórico

A história da Inteligência Artificial teve início na década de 40, marcada pela Segunda

Guerra Mundial, com o desenvolvimento do computador para realizar o cálculo da bomba atômica,

pois era necessária uma grande quantidade de cálculos precisos. O computador também foi utilizado

para o planejamento de ações estratégicas de exércitos, sendo que a partir daí surgiram os jogos por

computador (MÜLLER, 2005).

O primeiro esforço conjunto para estudar IA foi o encontro no Darthmouth College, em

1956. Este encontro foi também o primeiro entre os quatro pesquisadores do campo da IA nos

Page 19: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

9

Estados Unidos durante duas décadas: McCarthy, Minsky, Newell e Simon. Neste encontro e no

livro publicado a seguir com o título de “Automata Studies”, no qual surgiu o primeiro artigo

tratando redes neurais como um paradigma da arquitetura computacional, nasceram

simultaneamente os dois paradigmas da Inteligência Artificial: simbólica e conexionista.

(BARRETO, 1997). 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

(RABUSKE, 1995).

Na década de 90 “as redes neurais tiveram uma explosão exponencial de aplicações e

desenvolvimento de modelos”. Surgiram centenas de propostas de novos modelos e

aperfeiçoamento dos mesmos. Foram construídos os Sistemas Híbridos que permitem a construção

de grandes sistemas abrangendo uma forma mais completa de representação do comportamento

humano (MÜLLER, 2005).

Nos últimos anos, ocorreu uma mudança nos conteúdos e nas metodologias de investigação

da IA. Hoje é comum aprimorar o trabalho em teorias existentes do que propor novas,

demonstrando resultados com teoremas e experiências rigorosas em detrimento da intuição, por

exemplo. De acordo com Müller (2005), os sistemas atualmente existentes permitem:

o conduzir um automóvel em uma auto-estrada;

o fazer o reconhecimento de voz (passar de voz para texto);

o fazer tradução;

o detectar avarias;

o diagnosticar doenças; e

o ganhar do campeão mundial de xadrez.

Page 20: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

10

2.1.2. Técnicas de Inteligência Artificial

Os pesquisadores de IA, nos últimos anos têm se preocupado mais com a aplicação dos

conceitos dela no mundo real do que com o desenvolvimento de novos teoremas. Estas novas

pesquisas têm dividido a IA em muitos ramos, entre eles estão: Sistemas Especialistas,

Processamento da Linguagem Natural, Redes Conexionistas, Algoritmos Genéticos, Conjuntos

Difusos, Agentes Inteligentes e Raciocínio Baseado em Casos.

Este trabalho utilizou um desses ramos, mais especificamente a técnica de Raciocínio

Baseado em Casos, que é o campo de estudo da IA que se utiliza de uma grande biblioteca de casos

passados para consulta e resolução de problemas atuais. Estes problemas são resolvidos através da

recuperação e consulta de casos que já foram solucionados anteriormente e da conseqüente

adaptação das soluções encontradas nas resoluções (FERNANDES, 2003).

2.2. RACIOCÍNIO BASEADO EM CASOS

Diariamente as pessoas se deparam com problemas variados, e sem perceber os resolvem,

algumas vezes de forma rápida, outras vezes de uma forma mais lenta. Mas como estes problemas

podem ser resolvidos? O que é utilizado para resolvê-los? Para resolver problemas usa-se um

recurso importante que o ser humano possui, a memória. Isto permite que pessoas tomem uma

decisão em relação a algum problema, baseando-se em situações semelhantes que já viveram no

passado. Se no passado essa decisão foi aplicada com sucesso, então a mesma é aplicada

novamente, caso contrário toma-se uma nova decisão para que no futuro se possa reutilizá-la

novamente.

A resolução de um problema utilizando Raciocínio Baseado em Casos (RBC) consiste em

identificar um problema atual, buscar a experiência mais semelhante em um conjunto de casos e

aplicar o conhecimento dessa experiência passada na resolução do problema atual. Esse conjunto de

casos representa a base de casos ou memória do sistema (RAMALHO, 1999).

RBC é uma técnica de Inteligência Artificial que resolve os novos problemas através da

recuperação e adaptação de soluções anteriores. A inspiração inicial de RBC advém da maneira

como o raciocínio humano recorda e explica as experiências passadas para solucionar novos

problemas (KUHNEN, 2000).

Page 21: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

11

Segundo Wangenheim e Wangenheim (2003), Raciocínio Baseado em Casos é um enfoque

para a solução de problemas e para o aprendizado baseado em experiências passadas. RBC resolve

problemas ao recuperar e adaptar experiências passadas – chamadas casos – armazenadas em uma

base de casos. Um novo problema é resolvido com base na adaptação de soluções de problemas

similares já conhecidas.

O estudo de RBC é guiado por duas motivações primárias: a primeira, oriunda da

ciência cognitiva, é o desejo de modelar o raciocínio e o aprendizado humano. A segunda,

proveniente da IA, é o desejo de desenvolver tecnologias para a construção de sistemas inteligentes

cada vez mais efetivos (RAMALHO, 1999).

Os seres humanos são considerados robustos resolvedores de problemas. Muitas vezes

resolvem problemas difíceis apesar do conhecimento limitado e incerto. Além disso, com a

experiência adquirida o desempenho deles melhora cada vez mais. Todas essas qualidades são

desejáveis em um sistema de IA para o mundo real. Portanto, existem boas razões para se utilizar

um RBC (Leake, 1996 apud RAMALHO, 1999):

o Aquisição do conhecimento: o conhecimento presente em um sistema de RBC fica

armazenado na própria base de casos;

o Manutenção do conhecimento: um usuário do sistema pode ser habilitado para adicionar

novos casos na base de casos sem a intervenção do especialista;

o Eficiência crescente na resolução de problemas: a reutilização de soluções anteriores

ajuda a incrementar a eficiência na resolução de problemas. O RBC armazena tanto as

soluções bem sucedidas como as que não obtiveram sucesso. Isto faz com que eventuais

insucessos sejam evitados;

o Qualidade crescente das soluções: quando os princípios de um domínio não são bem

conhecidos, regras não são a melhor solução. Nessa situação, as soluções sugeridas pelos

casos refletem o que realmente aconteceu em uma determinada circunstância; e

o Aceitação do usuário: um dos pontos chaves para o sucesso de um sistema de IA é a

aceitação do usuário. Os sistemas de RBC podem comprovar o seu raciocínio

apresentando ao usuário os casos armazenados na base. Este é um dos grandes

problemas enfrentados por outras técnicas de IA como as Redes Neurais.

Page 22: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

12

A origem da técnica de RBC é atribuída a uma pesquisa na área da ciência cognitiva

desenvolvida por Schank e Abelson em 1977. Neste trabalho eles afirmaram que todo o

conhecimento é armazenado no cérebro como um script. Estes scripts compõem uma memória

conceitual, descrevendo informações sobre eventos típicos como um almoço em um restaurante ou

uma consulta médica. Porém, experimentos com fatos mostraram que somente os scripts não

representavam o conhecimento armazenado na memória. Era comum as pessoas misturarem fatos

parecidos como consulta médica e consulta dentária no momento da lembrança (LAGEMANN,

1998).

O primeiro sistema que pode ser considerado como um RBC foi o CYRUS, desenvolvido

por Janet Kolodner. Esse sistema foi baseado no modelo de memória dinâmica de Schank e na

teoria dos MOP’s (Memory Organization Packets) para aprendizagem e solução de problemas

(FERNANDES, 2003).

Outras bases para RBC e outros conjuntos de modelos foram desenvolvidos por Bruce

Porter e seu grupo. Inicialmente, eram endereçados os problemas de aprendizado de máquina e de

conceitos aprendidos para classificação de tarefas. Essa linha de desenvolvimento deu origem ao

sistema PROTOS que enfatiza a integração do domínio geral de conhecimento e especifica o

conhecimento de casos dentro de uma estrutura de representação unificada (KUHNEN, 2000).

2.2.1. Tipos de Problemas Resolvidos Através de RBC

Sistemas de RBC já estão presentes em diversos tipos de aplicações como suporte ao

consumidor, controle de qualidade, manutenção de aeronaves, planejamento de processos, apoio à

decisão, roteamento de mensagens, Help Desks computadorizados, predições, pesquisas

jurisprudências etc (Lee, 1998 apud KUHNEN, 2000).

A utilização de RBC fornece uma abordagem diferente de banco de dados, tornando-se uma

ferramenta ideal para a tarefa de diagnóstico. Em um RBC uma consulta a uma base de

conhecimento avalia ao máximo todos os casos, para escolher os mais similares em relação ao

contexto do problema (caso) atual. No procedimento de diagnóstico médico, leva-se em conta um

conjunto de sintomas e de resultados de exames que serão os dados de entrada do sistema de acordo

com o domínio escolhido (SILVA, 2000).

Page 23: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

13

Independente do tipo de aplicação, os sistemas de RBC resolvem problemas utilizando o

mesmo princípio: comparam o caso de entrada com os casos armazenados na memória (base de

casos). A pesquisa pelos casos mais semelhantes é realizada por algoritmos que calculam o grau

de similaridade entre o caso de entrada e os casos da base. Se esta pesquisa retornar um

caso idêntico ao caso de entrada, o caso encontrado pode ser usado diretamente para

resolver o problema. Porém, se o caso recuperado não for idêntico ao caso de entrada, talvez

seja necessário que o usuário (ou o próprio sistema) faça uma adaptação da solução encontrada para

resolver o problema. Quando é apropriado, novos casos podem ser acrescentados à base de casos

para expandir o conhecimento do sistema (Buta, 1997 apud RAMALHO, 1999).

2.2.2. Principais Etapas do Ciclo de Desenvolvimento de um Sistema de RBC

O processo de desenvolvimento de um sistema de RBC é uma tarefa iterativa e não se

encaixa em uma metodologia genérica. A seguir serão descritas algumas destas etapas que são

consideradas as mais importantes segundo Fernandes (2003):

o Representação dos casos: é a representação do conhecimento processado em forma de

casos que futuramente serve para sugerir uma solução para um problema;

o Indexação: é a associação de rótulos em casos, de maneira a caracterizá-los para

posteriormente recuperá-los em uma base de conhecimento;

o Recuperação: esta etapa tem por objetivo recuperar os casos mais similares,

identificando-os através de características relevantes a solução;

o Ajuste da situação: esta etapa tem por objetivo transformar novos casos que não estejam

no formato da base no formato ideal; e

o Aprendizagem: é a acumulação de novas experiências na base de conhecimento.

A Figura 1 ilustra passo a passo cada uma das principais etapas que fazem parte do ciclo de

um RBC.

Page 24: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

14

Figura 1. Ciclo de um RBC Fonte: Adaptado de Fernandes (2003)

2.2.2.1. Representação dos Casos

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 (LAGEMANN, 1998).

Segundo Ramalho (1999), muitos autores definem um caso como sendo uma abstração de

uma experiência, que deve estar descrita em termos de seu conteúdo e contexto. Estas

experiências precisam ser organizadas em unidades bem definidas chamadas base de

conhecimento ou memória de casos. (RAMALHO, 1999).

Existem muitas formas de representação de casos que podem ser utilizadas em um RBC,

tais como: representações atributo-valor, orientadas a objetos, redes semânticas, e muitas outras.

Elas representam o formalismo com os quais será representado o conhecimento para a solução do

Page 25: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

15

problema, e determinar qual a melhor forma é uma tarefa um pouco difícil, mas a forma mais

utilizada é a descrição através de atributos. Algumas aplicações requerem um conhecimento

profundo do domínio do problema, não dispensando a presença de um especialista. Muitos sistemas

de RBC usam sofisticadas representações dos casos para expressar o conhecimento, com atributos

de um caso referindo-se a outros casos. A representação dos casos é uma das mais importantes

etapas do processo de desenvolvimento de um sistema de RBC (RAMALHO, 1999).

2.2.2.1.1. Representações Atributo-Valor

É a forma mais simples utilizada para representação dos casos. É realizada por vetores

atributo-valor, sendo que um caso é representado por um conjunto de pares atributo-valor. O

conjunto de atributos pode ser fixo, ou pode variar entre casos individuais. Cada atributo geralmente

é associado a um domínio (tipo de dados), ou faixa para seus possíveis valores. Tipos básicos de

dados geralmente são utilizados neste método como: número (real ou inteiro), booleano, data,

símbolo (ordenado, não ordenado ou taxonomia), e string.

Para este tipo de representação é muito importante a escolha de atributos relevantes e com

significância preditiva no comportamento dos objetos representados. Este tipo de representação

possui muitas vantagens, dentre elas: representação simples e fácil de implementar; simplifica a

implementação de medidas de similaridade eficientes; fácil de armazenar; e sua representação é

eficiente e possível.

2.2.2.1.2. Representações Orientadas a Objetos

Assim como nas linguagens de programação, descrevem o domínio particionando-o com

relação a seus objetos. São de muita importância em domínios de aplicação muito complexos que

podem conter casos com estruturas variáveis. Neste contexto, um objeto representa uma entidade do

domínio, e os estados de um objeto podem ser modificados apenas através dos serviços que ele

fornece.

Objetos de tipos similares agrupados formam classes. Elas definem o espaço de estado, e as

operações de seu tipo que podem ser aplicadas sobre objetos da classe. Um objeto concreto de uma

classe é uma instância, que é um conjunto de dados que obedece uma estrutura e tipos de atributos

definidos em uma classe. Este tipo de representação permite uma modelagem que pode relacionar

Page 26: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

16

objetos de diferentes tipos como: relações taxionômicas e relações composicionais

(WANGENHEIM & WANGENHEIM, 2003).

Segundo Wangenheim & Wangenheim (2003), as vantagens da modelagem orientada a

objetos são:

o Representação dos casos estruturada e natural;

o Representações estruturadas e relacionais podem ser representadas diretamente;

o Armazenamento mais compacto do que em representações atributo-valor; e

o Informação estrutural pode ser utilizada para a adaptação da solução.

2.2.2.1.3. Redes Semânticas

É um tipo específico de grafo utilizado para representar conhecimento na forma de um

grafo, similar a uma rede. Uma situação ou uma entidade quase sempre possui uma estrutura

composta, que é representada com nodos representando unidades conceituais e arestas dirigidas

representando relacionamentos entre estas unidades. Um tipo específico de rede semântica é a Rede

de Recuperação de Casos (RRCs).

RRCs são capazes de trabalhar com termos vagos e ambíguos podendo manipular bases de

casos de tamanho razoável de forma eficiente. As RRCs baseiam-se em princípios de Redes Neurais

para pesquisar na base de casos. Uma RRC é considerada como uma Entidade de Informação (EI),

que é uma parte atômica de um caso ou de uma consulta. Um caso-RRC consiste em um descritor

de caso único e uma série de entidades de informação.

2.2.2.1.4. Árvores k-d

A idéia básica em utilizar árvores como estrutura de recuperação e armazenamento é a de

estruturar o espaço de busca com base na densidade observada. O principal exemplo de estruturas

de árvores utilizadas em um RBC são árvores k-d, que são árvores de pesquisa binária k-

dimencionais. Elas representam dados estruturados de acordo com k-chaves, e são árvores de busca

binária onde em cada nível se utiliza uma chave diferente, dentre suas k chaves, sendo k os atributos

dos casos armazenados.

Page 27: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

17

Em uma árvore k-d, uma busca é realizada de forma incremental para achar dentro de um

conjunto de casos o caso mais similar. Isso é feito de maneira que se construa uma árvore que

divide o espaço de busca em partes, levando-se em conta a similaridade entre os casos. As folhas da

árvore que contêm um subconjunto específico de casos não mais divididos, são chamadas de

repositório de casos.

2.2.2.2. Indexação

Para Kolodner, (1993), indexação de casos é a associação de rótulos em casos de forma a

caracterizá-los para posteriormente recuperá-los em base de casos, mas esta não é uma tarefa

simples, pois para construir uma boa coleção de índices para um conjunto de casos, é necessário se

ter em mente o que faz um índice "bom" e como escolhê-lo.

As informações são indexadas para que possam mais fácil e rapidamente serem recuperadas.

Em livros, por exemplo, há a preocupação com a correta identificação das necessidades futuras de

recuperação para melhor definir quais informações farão parte dos índices (LAGEMANN, 1998).

Os índices de um caso são tão importantes como os índices de livros em uma biblioteca. A

indexação se faz necessária para que os casos possam ser recuperados, sendo ela quem determina

quais os atributos que devem ser comparados para se avaliar a similaridade entre o caso de entrada e

os casos da base (Kolodner & Leake, 1996; Weber-Lee, 1998 apud RAMALHO, 1999).

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 objetivos de facilidade e rapidez na recuperação, também os usa para realizar eficientemente

a atribuição de similaridade entre os casos (LAGEMANN, 1999).

Segundo Kolodner (1993) uma boa indexação deve ter as seguintes características:

o Antecipar o vocabulário que será usado na recuperação;

o Utilizar os conceitos que são normalmente usados para descrever os casos através de

características superficiais ou mais abstratas;

o Antecipar as circunstâncias nas quais a recuperação será realizada; e

o Ser suficientemente concreto para facilitar a reorganização em futuras situações.

Page 28: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

18

A seleção de índices é o processo de identificação de descritores para um caso particular. A

comunidade de RBC tem proposto diversos gridlines para a escolha de índices (KUHNEN, 2000):

o índices devem ser preditivos;

o predições feitas devem ser úteis;

o índices devem ser abstratos o suficiente para tornar o caso útil em uma variedade de

futuras situações; e

o índices devem ser concretos o suficiente para serem facilmente reconhecíveis em futuras

situações.

Uma difícil tarefa na definição dos índices é prever que tipos de necessidade irão surgir e

que tipos de informações serão necessárias para recuperar casos em situações futuras. Muitos

esforços foram feitos para estabelecer regras gerais de vocabulário de índices em classes

particulares nas tarefas de RBC, mas esta tarefa acaba ainda sendo desenvolvida para atender os

objetivos específicos da recuperação de cada aplicativo que use RBC (LAGEMANN, 1998).

Segundo Kolodner (1993), existem muitos métodos de indexação automática, e dentre eles

estão:

o Indexação por meio de Entidades de Informação (EIs): tendem a ser preditivas ao longo

de todo domínio;

o Indexação baseada em diferenças: que seleciona índices que diferenciam um caso do

outro;

o Métodos de generalização baseados em similaridade e em explicação: produzem um

conjunto apropriado de EIs como índices para casos abstratos (protótipo) a partir de

casos que compartilham um conjunto comum de EIs, enquanto as EIs não

compartilhadas são usadas para um segundo nível de indexação dos casos específicos; e

o Método de aprendizado por indução: identificam automaticamente EIs preditivas, que

são então usadas como índice.

Page 29: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

19

2.2.2.3. Similaridade

Segundo Wangenheim & Wangenheim (2003), a primeira idéia concebe similaridade como

uma relação entre objetos ou fatos, que existe ou não existe. A segunda idéia pressupõe a idéia de

uma similaridade maior ou menor, enquanto o terceiro enfoque postula a quantificação da extensão

desta semelhança.

Segundo Fernandes (2003), um caso será similar ao outro quando as características que

representam realmente o conteúdo e o contexto do mesmo forem semelhantes.

Uma medida de similaridade sobre um universo U é uma função do tipo ilustrado na

Equação 1.

sim(x, y): (U x U -> [0,1]) Equação 1

Existem muitas medidas de similaridade que podem ser citadas como:

o Nearest Neighbour (vizinho mais próximo): é bastante simples para determinação da

similaridade entre dois casos. A idéia básica é que as ocorrências em uma base de casos

podem também ser vistas como pontos em um espaço multidimensional. O conceito do

Nearest Neighbour é uma soma, onde cada índice tem uma importância para determinar

o vizinho mais próximo ponderando os índices. Por exemplo, o modelo de uma máquina

é considerado mais importante do que a correia do motor;

o Distância de Haming: que é definida como o número de bits divergentes em dois vetores

x e y de mesmo tamanho; e

o Medida de similaridade invariante é aquela onde todos os atributos usados no seu cálculo

são simétricos.

2.2.2.4. Recuperação

Recuperar é o processo de retornar um ou mais casos da base de casos em resultado à

comparação de um novo caso com cada um dos casos da base. Essa comparação é feita por meio de

uma avaliação de similaridade. O resultado dessa comparação é a seleção de um caso ou uma

combinação de casos que sugere uma solução para o novo caso (KOLODNER, 1993).

Page 30: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

20

É importante nesta etapa que o sistema de RBC possua meios de identificar os casos que

tenham um potencial para serem mais úteis. Determinar o quanto um caso pode ser útil, requer

considerações sobre quais são os propósitos a que ele se destina e quais dos seus aspectos foram

relevantes no passado. Os procedimentos de comparação estarão habilitados para determinar quais

dimensões de um caso devem ser focadas no julgamento da similaridade (Leake, 1996 apud

RAMALHO, 1999).

Considerando que a definição dos índices retrata todos os aspectos a serem considerados na

recuperação, os algoritmos de comparação poderão usá-los para se orientar na busca, determinando

quais características devem ser focadas no julgamento da similaridade. Qualquer caso pode ser

indexado de várias formas, entretanto, o importante é que o algoritmo de comparação esteja apto a

distinguir entre os aspectos relevantes em cada caso específico (LAGEMANN, 1998).

Dada uma especificação de entrada de um problema, o sistema realiza uma pesquisa na sua

memória de casos. Se existir um caso na base idêntico ao caso de entrada (o que é raro

acontecer), o caso recuperado pode ser usado diretamente para solucionar o problema. Porém, se

isso não acontecer (o caso é apenas similar ao problema de entrada), o sistema seleciona e

recupera os casos que mais se assemelham ao caso de entrada (KUHNEN, 2000).

2.2.2.4.1. Algoritmos de Recuperação

A seguir serão descritos alguns dos principais algoritmos de recuperação.

Matching e Ranking

Realiza uma procura em locais de memória diretamente através de heurísticas match e

ranking, acessando casos que podem ser úteis. Conforme Kolodner (1993), match é um processo

que compara dois casos entre si e determina o grau de similaridade entre eles. Ranking, ordena os

casos partially-matching conforme sua utilidade, determinando qual é melhor que os outros.

As entradas de dados para os processos de match e ranking são: novo problema que o

sistema está tentando resolver, o objetivo de uso para os casos recuperados, o conjunto de casos

recuperados, índices associados com cada caso recuperado, e critério de match razoável, indicando

quando os procedimentos de Match e Ranking devem parar.

Page 31: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

21

Contagem de Características

Neste método, o cálculo da similaridade consiste da contagem dos atributos do caso

armazenado na base que coincidem com os atributos do caso de entrada. A cada atributo i do caso

armazenado na base igual ao atributo i do caso de entrada, soma-se 1 ao número de atributos

coincidentes entre os dois casos. O grau de similaridade entre o novo caso e o caso armazenado na

base é dado pelo percentual do número de atributos coincidentes entre os dois casos em função do

número de atributos considerados para a comparação destes.

Nearest Neighbour Retrieval (O Vizinho mais Próximo)

Esta é uma técnica muito utilizada por ter uma fácil implementação, e o primeiro passo para

aplicá-la é identificar as características essenciais para resolução do problema, sendo as mesmas

representadas por algum sistema de coordenadas, para que a medida de distância entre os casos

existentes e um novo caso possa ser medida. Ainda pode-se considerar outros fatores além dos

selecionados, o que fará com que atributos tenham pesos diferenciados.

A similaridade entre um novo caso e um caso existente é determinada para cada atributo.

Esta medida deve ser multiplicada por um fator peso, e calculada a somatória de todos os atributos,

permitindo assim estabelecer uma medida de similaridade entre os casos.

Nenhum algoritmo de recuperação informa qual a distância que será alimentada pela

distância real. Para isto existem várias medidas de distância como: distância euclidiana, distância

euclidiana quadrada, city-bloch, chebychev, percentual, etc.

A fórmula de similaridade pelo vizinho mais próximo, segundo Fernandes (2003), é

representada como ilustrado na Equação 2.

Similaridade(N, F) = wFN ii

n

ii

f *),(1�

=

Equação 2

Onde:

N = novo caso

F = caso existente

Page 32: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

22

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 (FERNANDES, 2003).

Como saber qual algoritmo de recuperação especifica qual distância que será alimentada

pela distância real, existem várias medidas de distância que podem ser aplicadas, segundo

Fernandes (2003):

Distância Euclidiana: sendo a mais utilizada, trata somente da distância geométrica em um

espaço multidimensional. Sua fórmula pode ser representada como ilustrado na Equação 3.

distancia(x, y) = ½2)(���

��� −� yx

ii

i

Equação 3

Distância Euclidiana Quadrada: é o quadrado da distância euclidiana padrão. O espaço vai

crescendo à medida que os objetos aparecem. Sua fórmula pode ser representada como ilustrado na

Equação 4.

distancia(x, y) = 2)( yxi

ii−� Equação 4

Distância City-block (Manhattan): é a distância média entre as dimensões. Em muitos casos

esta medida gera resultados parecidos com a distância euclidiana, mas o efeito de grandes

diferenças é minimizado aqui. Sua fórmula pode ser representada como ilustrado na Equação 5.

distancia(x, y) = � −i

ii yx Equação 5

Page 33: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

23

Distância Chebychev: indicada para casos em que seja necessário definir dois objetos como

diferentes, se os mesmos forem diferentes em qualquer dimensão. Sua fórmula pode ser

representada como ilustrado na Equação 6.

distancia(x, y) = yx iiMaximum − Equação 6

Distância Forte: aplicada quando a forma de incrementar ou decrementar o peso progressivo

alocado na dimensão do objeto é muito diferente. Sua fórmula pode ser representada como ilustrado

na Equação 7.

distancia(x, y) = ½

��

−�i

p

ii yx Equação 7

Distância Percentual: medida extremamente útil para dados em que a dimensão analisada for

natural. Sua fórmula pode ser representada como ilustrado na Equação 8.

distancia(x, y) = ( )

i

numberof yx ii≠

Equação 8

Conforme Fernandes (2003), havendo pesos diferentes para as características, a distância

entre o novo caso (N) e o caso existente (A) é dada pela fórmula representada como ilustrado na

Equação 9.

( ) ( )WYWXd yaxaa** += Equação 9

Recuperação Indutiva

Segundo Fernandes (2003), a técnica de recuperação indutiva é utilizada em ferramentas

comerciais mais poderosas, e classifica padrões entre os casos, particionando-os em conjuntos, ou

clusters. Cada conjunto possui casos similares, e um dos requisitos da indução é uma definição da

característica do novo caso. Casos que possuem descrição similar e referem-se a problemas

similares pretendem chegar a soluções similares.

Page 34: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

24

Na recuperação indutiva são construídas árvores de decisão baseadas em dados de

problemas passados. Em sistemas de RBC, a base de casos é analisada por um algoritmo que irá

classificar ou indexar os casos. Um dos mais conhecidos é o algoritmo ID3. A técnica indutiva é

bem mais rápida que as demais, executando-se os casos em que a base de casos é muito grande. O

principal problema desta técnica é que em casos inéditos não haverá recuperação de nada

(LAGEMANN, 1988).

Recuperação Seqüencial

Segundo Wangenheim & Wangenheim (2003), a Recuperação Seqüencial é a mais simples

técnica de recuperação, pois nela a medida de similaridade é calculada seqüencialmente para todos

os casos da base, permitindo a determinação dos m casos mais similares. Para a determinação de

uma relação de preferência específica para a situação, aplica-se sucessivamente o conceito de

similaridade do sistema a cada um dos casos da base de casos. Depois todos os casos são ordenados

de acordo com a sua similaridade com a consulta, sendo o resultado os m casos mais similares. Este

método é um método de aplicação universal.

TIPOS: TipoCaso = ... SimCaso = REGISTRO Case : TipoCaso; similaridade: [0..1] FIM; VARIAVEIS: ListaCasoSim : VETOR [1..m] DE SimCaso CaseBase: ARRAY [1..n] DE TipoCaso (* base de casos *) Consulta : TipoCaso

Figura 2. Estrutura de dados da recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003)

FUNCAO SelecRel(CaseBase,Consulta, m): ListaCasoSim INICIO ListaCasosSim[1..m].similaridade := 0 PARA i := 1 TO n FACA SE sim(Consulta,CaseBase[i]) > ListaCasoSim[m].similaridade ENTAO insira CaseBase[i] em ListaCasoSim RETORNE ListaCasoSim FIM

Figura 3. Algoritmo de recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003)

Segundo Wangenheim & Wangenheim (2003), este processo possui vantagens tais como: o

processo é comprovadamente completo e correto, pois é aplicado seqüencialmente a todos os casos

da base de casos; sua implementação é extremamente simples; aceita utilização de medidas de

Page 35: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

25

similaridade arbitrárias, pois não utiliza nenhum tipo de indexação; e permite consultas ad-hoc

independentes do conceito de similaridade, também por não possuir indexação.

Uma das principais desvantagens deste processo, conforme Wangenheim & Wangenheim

(2003), é a má performance para bases com um grande número de casos ocasionado pelo fato do

método ser aplicado seqüencialmente. Outras desvantagens são: esforço de recuperação constante,

independentemente da complexidade da consulta e do número de casos a serem recuperados; e o

esforço de recuperação não pode ser reduzido ou limitado por conhecimento adicional, como

conhecimento de domínio.

2.2.2.5. Adaptação

Pelo fato de nenhum problema passado ser exatamente igual a um problema atual, soluções

passadas geralmente são adaptadas para solucionar novos problemas (KOLODNER, 1993).

Adaptação pode ser uma simples substituição de um atributo da solução por outro ou uma complexa

e total modificação na estrutura da solução.

A adaptação pode ser feita de várias formas (LAGEMANN, 1998):

o Pela inclusão de um novo comportamento à solução recuperada;

o Pela eliminação de um comportamento da solução recuperada; ou

o Pela substituição de parte de um comportamento.

Podem ocorrer situações onde há a presença de mais de uma das formas. A etapa de ajuste

da situação é necessária quando o usuário encontra dificuldades em apresentar o problema de

entrada nos moldes dos casos da base. Se este problema ocorre, deve-se fazer os ajustes necessários

para que se possa comparar o caso de entrada com os casos da base (Weber-Lee, 1998 apud

KUHNEN, 2000) .

2.2.2.6. Aprendizagem

Na IA, quando se fala de aprendizagem, é comum pensar no aprendizado por generalização,

tanto pela indução quanto baseado em explicações. Enquanto a memória de RBC informa sobre

similaridades 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 (LAGEMANN, 1998):

Page 36: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

26

o Pela acumulação de novos casos; e

o Pela identificação de quais índices utilizar ou não na recuperação.

Algoritmos de Aprendizagem Baseados em Instâncias: a aprendizagem baseada em

instâncias (IBL – Instance Based Language) pode ser usada para selecionar casos para classificação

em RBC, ter uma única entrada – seqüência de instâncias. O IBL utiliza uma metodologia que

possui uma descrição conceitual, uma classificação e instâncias similares com classificações

similares (KUHNEN, 2000).

Os componentes do IBL são:

o função de similaridade – calcula a similaridade entre a instância de treinamento ‘i’ e as

instâncias na descrição conceitual;

o função de classificação – usa o valor da similaridade e o registro de classificação na

descrição conceitual para classificar ‘i’; e

o atualizador da descrição conceitual – mantém um registro da performance das

classificações e decide quais instâncias irão ser incluídas na descrição conceitual.

Algoritmo IB3 (Instance Based 3): o IB3 aceita uma instância se sua precisão de

classificação for significativamente maior que a freqüência observada da classe. Utiliza um

intervalo de confiança de proporção para determinar quanto uma instância é aceitável, medíocre ou

com ruído (KUHNEN, 2000). No IB3 são utilizados dois intervalos de confiança:

o precisão de classificação; e

o freqüências relativas observadas da classe.

2.3. Pesquisa e Análise de Soluções Similares

Para que fosse possível o desenvolvimento do sistema proposto foram pesquisados outros

sistemas de RBC, a fim de se obter um maior conhecimento sobre este tipo de ferramenta e utilizar

os conceitos já aplicados, e que deram certo para que se enquadrem na solução proposta este

projeto. Abaixo segue uma descrição resumida sobre o problema que foi resolvido, características e

métodos aplicados em cada uma das ferramentas estudas.

2.3.1. O iHotel

Page 37: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

27

O iHotel foi um sistema desenvolvido por Kuhnen (2000). É um sistema de consulta sobre

informações hoteleiras que utiliza técnicas de Raciocínio Baseado em Casos para apresentar os

resultados ao cliente. Foi desenvolvido com a finalidade de auxiliar e facilitar o processo de escolha

de uma determinada hospedagem pelos clientes, bem como oferecer alguns informativos como:

mapas, fotos, links dentre outros. O iHotel trabalha com os atributos da indústria hoteleira que o

cliente considera relevante para sua estada em algum lugar. Este sistema não se restringe

especificamente a hotéis propriamente ditos, mas também pode ser utilizado para camping,

pousadas, chalés e todo tipo de hospedagem.

O sistema foi projetado para o ramo da hotelaria, e direcionado especificamente para o setor

de hospedagem em geral, de modo a facilitar a iteração entre o hóspede e a hospedagem, por meio

da consultas diferenciadas.

O iHotel é uma ferramenta multiplataforma que tem seu acesso provido via web. Foi

totalmente escrito utilizando a linguagem de programação PHP, e tem como servidor de banco de

dados o banco MySQL. O sistema utiliza a técnica de Inteligência Artificial, Raciocínio Baseado

em Casos para buscar em sua base de casos o melhor resultado para indicar ao cliente.

Alguns módulos do iHotel podem ser citados como:

Consulta i-hotel: o cliente acessa o sistema via web, obtém uma página dinâmica onde as

opções de consulta vêm direto da base de dados. O cliente preenche alguns campos obrigatórios e

outros campos que achar importantes e de acordo com seu perfil, e envia uma consulta para o RBC.

Hospedagens: o cliente acessa as soluções resultantes da consulta, que possuem

informações tais como: foto, endereço e dados da hospedagem.

Inteligência Artificial: o cliente acessa por meio do link Int. Artificial uma página Web

contendo informações sobre o uso da Inteligência Artificial neste sistema e uma introdução básica

do que é o Raciocínio Baseado em Casos.

Sistema: o cliente acessa pelo link Sistema uma página Web com informações sobre o

sistema propriamente dito, tais como: suas vantagens em relação a outros mecanismos de busca, a

importância do uso do Raciocínio Baseado em Casos e referências para o desenvolvimento.

Page 38: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

28

A aquisição do conhecimento para a base de casos do iHotel foi desenvolvida com o auxilio

de um supervisor de campo, em um processo de extração do conhecimento a ser utilizado no

sistema. Primeiramente identificou-se quais os atributos do caso (dados da hospedagem) deveriam

ser armazenados na base de casos. Para o desenvolvimento da base de casos, utilizou-se segundo

sugestão do especialista, características da hospedagem, em que o usuário pudesse definir desde a

de maior até a de menor importância.

Para a representação dos casos do iHotel foi utilizado uma estrutura de frames para a

modelagem do conhecimento extraído do especialista, por esta ser uma estrutura para representação

de situações estereotipadas. Através de uma combinação de listas encadeadas o sistema modela a

memória de casos de forma dinâmica, carregando na memória da máquina apenas os atributos

relevantes para o cálculo da similaridade e recuperação dos casos.

Para a recuperação dos casos da base o iHotel utilizou uma combinação entre dois métodos:

o método de Contagem de Características (Features Count) e o método do Vizinho mais Próximo

(Nearest Neighbour), chamada de métrica híbrida, que possibilita uma recuperação do caso com

maior precisão para aquilo que está se pretendendo. A funcionalidade dos dois métodos ficou

disposta da seguinte forma: para alguns dos atributos, foi utilizado o método de Contagem de

Características e, para outros, o Vizinho mais Próximo, ficando a cargo do usuário a atribuição dos

pesos de cada característica do novo caso que ele está preenchendo para a recuperação dos casos

similares, deixando assim uma maior liberdade para que o usuário possa definir aquilo que mais tem

importância para ele.

A função para cálculo da distância aplicada na recuperação dos casos foi a Distância do

City-Block, que consiste em calcular o módulo da distância entre cada atributo do novo caso e o

atributo correspondente de cada caso armazenado na base. O limiar de similaridade foi estipulado

em no máximo dez casos a serem recuperados da base, sendo apenas listados como resultados os

dez casos mais similares. O resultado ideal para o problema é o de um caso que tem para o método

do Vizinho mais Próximo o menor valor encontrado no cálculo de distância City Block, ou seja, o

caso que tiver mais próximo do novo caso, e para o método da Contagem de Características o caso

que tiver o maior valor somado da contagem das características semelhantes.

2.3.2. SistLog

Page 39: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

29

O SistLog foi um sistema desenvolvido por Miranda (2000). Este sistema foi criado para que

professores das disciplinas de algoritmos utilizassem como auxílio na correção de avaliações. Tem

como objetivo de padronizar as correções de avaliações da disciplina de algoritmos do curso de

Ciências da Computação da Univali, mantendo o padrão e coerência no método de avaliação dos

alunos, aproximando a forma de avaliação dos diversos professores.

O SistLog foi desenvolvido utilizando como ferramenta de programação e desenvolvimento

a IDE do Delphi 5.0. O banco de dados que foi utilizado para o sistema foi o Paradox 7.0, também

da empresa Borland.

O SistLog foi implementado utilizando a técnica de Raciocínio Baseado em Casos, ou seja,

consegue encontrar a melhor solução para um novo caso baseando nos casos armazenados na base

de casos que mais se assemelhem ao novo caso. Cada questão da avaliação é avaliada tendo como

parâmetro nove itens:

o A lógica de programação correta?;

o As estruturas de controle foram utilizadas adequadamente?;

o As saídas são solicitadas no problema?;

o Os dados que o usuário deve informar foram lidos?;

o As variáveis foram declaradas?;

o Todas as variáveis foram declaradas corretamente quanto ao tipo?;

o As variáveis que precisam ser inicializadas foram inicializadas corretamente?;

o Todas as variáveis declaradas foram utilizadas?; e

o Quanto a sintaxe, o algoritmo está correto?.

O usuário fornece os pesos de cada item de cada questão, e o peso de cada item para

recuperação montando assim a hierarquia para recuperação. O sistema vai buscar na base somente

as notas dos alunos que tiverem 98% de similaridade, e após isso ele faz uma pesquisa em uma

outra base de casos da qual trará observações pertinentes ao aluno, baseado na média de cada item,

por exemplo, se o aluno tirou 5,0 na média lógica, o sistema traz uma observação informando que o

aluno entra-se com problemas neste quesito. A Figura 4 mostra a tela de cadastro de notas do

SistLog.

Page 40: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

30

Figura 4. Cadastro de Notas Fonte: Miranda (2000)

A Figura 5 mostra a tela de cadastro de pesos de itens de avaliação.

Figura 5. Cadastro de Pesos Fonte: Miranda (2000)

A Figura 6 mostra a tela de resultados da consulta do RBC.

Page 41: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

31

Figura 6. Tela Resultado da Consulta Fonte: Miranda (2000)

Para a aquisição do conhecimento do SistLog, primeiro foram identificados os itens que

deveriam ser avaliados em cada questão, e como deveriam ser armazenados na base de casos. No

desenvolvimento da primeira base de casos foram utilizadas notas para cada item específico, que

seriam recuperados de acordo com o peso de recuperação determinado pelo usuário, e a segunda

base de casos foi constituída das médias de cada um dos itens.

Para a representação dos casos utilizou-se uma estrutura de frames para modelar o

conhecimento do especialista. Esta estrutura foi utilizada combinando listas encadeadas, para que a

memória de casos fosse modelada de forma dinâmica, carregando na memória somente os atributos

que fossem realmente necessários.

Os métodos de recuperação utilizados foram o do Vizinho Mais Próximo (Nearest

Neighbour) para a recuperação da nota do aluno, e o método de Contagem de Características

(Features Count) para a recuperação das observações pertinentes ao aluno. A definição dos pesos

Page 42: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

32

de recuperação de cada característica de um novo caso a ser consultado fica a cargo do usuário, o

que deixa em aberto para escolha do que é mais importante ou não. Para o cálculo da distância foi

utilizada a função do city-block, sendo que serão recuperados no máximo dez casos da base, que

tenham no máximo a distância de 0,1 para que se tenha um maior nível similaridade.

2.3.3. RBC para o Problema de Suporte ao Cliente nas Empresas de Prestação de Serviço de Software: O Caso Datasul

Este sistema foi resultado por Lagemann (1998). É um sistema computacional com

inferência inteligente, criado para automatizar o atendimento dos clientes no suporte telefônico da

empresa Datasul. O objetivo deste sistema foi melhorar a prestação de serviço de suporte ao cliente

através de um sistema de um sistema de Help Desk, onde o usuário a partir de uma base de casos já

existente, pudesse realizar buscas e encontrar respostas para seus problemas através de problemas

muito similares aos seus, já resolvidos e armazenados na base de casos.

A Datasul é uma empresa com matriz em Joinville (SC) e filiais em São Paulo, Rio de

Janeiro, Minas Gerais, Rio Grande do Sul, franquias no Paraná, Ceará, Santa Catarina, Campinas e

Bahia e subsidiárias nos Estados Unidos, África do Sul e México. Na época era fundamental para a

empresa que uma proposta de solução gerasse o menor custo possível, aproveitando a base de dados

de FO´s (fichas de ocorrências) já cadastradas e toda a tecnologia já disponível na empresa.

Para o desenvolvimento do sistema foi utilizado o programa Progress como gerenciador de

banco de dados e linguagem de programação para a implementação da solução, já que é a

linguagem utilizada como base para os softwares da Datasul.

O conhecimento para a base de casos foi originado de um banco de dados de FO’s, e os

atributos escolhidos assumem diferentes funções, como descrever o caso, indexar o caso para

orientar a recuperação, descrever soluções e armazenar informações sobre o resultado do uso do

caso. Após a definição do conteúdo e o contexto dos casos, foram definidos os atributos que melhor

representam as experiências descritas nas fichas de ocorrência (FO´s) da empresa a serem

recuperadas.

A estrutura para representação dos sinônimos é baseada na teoria de listas circulares

duplamente encadeadas, e a função de distância que o sistema utiliza para calcular a similaridade é

a do city-block, sendo que o sistema também recorre a um conjunto de 21 regras, que são usadas

para determinar o valor da medida de similaridade. Estas regras foram definidas para que fossem

Page 43: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

33

considerados, na comparação e na avaliação da similaridade, produtos e módulos que possuíssem

alguma semelhança na natureza do negócio. Esta função de similaridade definida, foi obtida a partir

de vários testes com validação da recuperação por parte dos especialistas da Datasul. As

similaridades dos atributos e seus pesos foram testadas com um grande número de combinações

possíveis e com diferentes números.

A Figura 7 mostra a tela de consulta do sistema de Help Desk.

Figura 7. Tela de consulta do Help Desk Fonte: Adaptado de Lagemann (1988)

A recuperação é feita pelo Help Desk considerando a medida de similaridade dos casos

candidatos. O sistema através da sua função de recuperação possibilita ao usuário informar um

limiar para a medida de similaridade para os casos que serão recuperados. Os casos recuperados são

listados possibilitando ao usuário acesso aos atributos problema detalhado e solução do problema.

A Figura 8 mostra o resultado da consulta.

Page 44: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

34

Figura 8. Tela com caso recuperado Fonte: Adaptado de Lagemann (1988)

O autor conclui que em torno de 66% dos testes obteve-se sucesso, ou seja, uma solução

passada serviu para resolver um novo problema. Constatou-se que é possível aumentar o percentual

de sucesso instruindo o usuário do Help Desk a dirigir a descrição do problema para aproveitar

melhor as potencialidades do mecanismo de inferência, através do uso de palavras técnicas e pela

variação do limite do percentual de similaridade.

2.3.4. Avaliação Geral Sobre as Soluções Estudadas

Todas as ferramentas estudadas são ferramentas que utilizam técnica de Inteligência

Artificial Raciocínio Baseado em Casos como base, e talvez com algumas adaptações podem ser

utilizadas diretamente para o mercado. O sistema do caso Datasul e o iHotel possuem uma estrutura

que foi desenvolvida para atender um mercado e com poucas alterações podem alcançar este

propósito, já o SistLog foi desenvolvido para o meio acadêmico e talvez para seu uso em escala

necessite de uma pequena reestruturação para melhorar a usabilidade do sistema.

Das ferramentas estudas, o iHotel foi a que possui uma modelagem mais parecida com o

sistema proposto, pois além de utilizar o RBC e ser um Help Desk, possui acesso via web. Foi uma

ferramenta bem elaborada que possui um grande potencial comercial.

Outra consideração importante é sobre o SistLog, pois também utiliza RBC de uma forma

bem elaborada, pois possui duas bases de dados para que se possa dar uma resposta mais completa a

Page 45: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

35

respeito da avaliação, mas possui um ponto desfavorável, que é o fato dela ter sido desenvolvida

utilizando o banco de dados Paradox 7.0. Pelo fato do Paradox ser um sistema de banco de dados

baseado em arquivos, para uma aplicação com utilização de RBC em que se utiliza muitas consultas

ao banco, seria um grande ponto desfavorável. Seus arquivos de dados contêm registros que

possuem uma ordem fixa, ou seja, o registro de número 1000 será sempre o mesmo registro, até que

seja movido fisicamente dentro do arquivo através de alguma operação de ordenação. Além disso a

aplicação deve ser utilizada aconselhavelmente com menos de 10 usuários concorrentes e não tem

um desempenho bom com bases de dados com tamanho superior a 100 MB. (CLUBEDELPHI,

2006).

O Help Desk do caso Datasul é um sistema que foi muito bem projetado no que diz respeito

a técnica de RBC aplicada, tendo uma grande base de conhecimento inicial e métodos de avaliação

da similaridade e recuperação bem refinados. Um ponto desfavorável desta ferramenta é a

acessibilidade, já que foi projetado para operar em sistema Desktop.

2.4. Tecnologias Utilizadas no Sistema

Para o desenvolvimento do sistema proposto, foi utilizado um conjunto de tecnologias de

mercado que atendem as necessidades descritas pelo modelo. Os motivos pelos quais estas

tecnologias serão utilizadas são descritos a seguir.

2.4.1. Java

Foi disponibilizada pela empresa Sun Microsystems no ano de 1995 e vem provocando

entusiasmo até hoje em programadores analistas e projetistas de software. Ela é um resultado de um

longo e consistente trabalho de pesquisa e desenvolvimento, o que a torna muito mais do que uma

simples linguagem de programação, ela é um ambiente de desenvolvimento e execução de

programas que exibe as facilidades proporcionadas pela orientação a objetos, extrema portabilidade

de código produzido, pelas características de segurança que apresenta e pela facilidade de

integração com outros ambientes, principalmente a Internet (SAOFRANCISCO, 2006).

O Java é uma linguagem que possui uma sintaxe semelhante ao C, e através dela torna-se

possível a criação de aplicativos como os applets, servlets e JavaBens. Foi desenvolvida dentro de

um processo colaborativo (Java Community Process) pela comunidade internacional de tecnologia.

A abertura deste processo fez surgir uma grande comunidade de desenvolvedores que oferecem

Page 46: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

36

extensões, gratuitas ou não, para a resolução de questões fundamentais à programação de

aplicativos empresariais tais como, a persistência de dados, controle de transações, implementação

de segurança e gerenciamento de memória e cache. (CONSOLE, 2005).

Esta linguagem é utilizada com muito sucesso por muitas empresas. Um exemplo deste

sucesso é a segurança que está presente principalmente nas instituições financeiras, ou seja. O

Banco do Brasil, utiliza Java em 100% dos seus aplicativos BB-OfficeBank. A autenticação de

senha do Banco Bradesco também é feita com uma implementação Java. Além destes, existem

outros exemplos de sucesso. Eles optaram poelo Java por ser possível acessar seus programas de

qualquer tipo de equipamento, do mais modesto até o mais avançado, com plataforma Linux,

Windows NT, 2000 ou BeOS (sistema operacional desenvolvido pela Be Inc.) ou FreeBSD (sistema

operacional Unix baseado no Berkley 4.4 desenvolvido pela samaBSD), utilizando um navegador

Netscape, Mozilla ou IE (Internet Explorer) (CONSOLE, 2005).

2.4.1.1. Ambientes de Desenvolvimento

Para trabalhar com o ambiente Java faz-se necessário o uso de um dos ambientes de

desenvolvimento JDK (Java Developer’s Kit), estes ambientes podem ser obtidos gratuitamente

diretamente no site da Sun. O JDK (Java Development Kit) é composto basicamente por um

compilador (javac), uma máquina virual Java, um vizualizador de apllets (appletviewer), as

bibliotecas de desenvolvimento (packajes Java), um programa para composição da documentação

(javadoc), um depurador básico de programas JDB (Java Debugger), e uma versão run-time do

ambiente de execução JRE (Java Runtime Environment) (SAOFRANCISCO, 2006).

Page 47: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

37

A Figura 9 ilustra o ambiente de desenvolvimento Java.

Figura 9. Modelo de ambiente de desenvolvimento Java Fonte: Adaptado de Saofrancisco (2006)

O JDK não é um ambiente visual de desenvolvimento, embora seja possível desenvolver

aplicações gráficas complexas utilizando somente o JDK. Outras fabricantes de software como

Microsoft, Borland, Symantec e IBM oferecem comercialmente ambientes visuais para o

desenvolvimento Java (SAOFRANCISCO, 2006).

Desde o seu lançamento o Java vem sofrendo aprimoramentos, pois devido ao aumento no

número de aplicações e, conseqüentemente, o aumento no número de bibliotecas padrão da

linguagem, foram criadas três divisões na plataforma a partir da versão 2 da linguagem: o J2SE, o

J2EE e o J2ME (INFOWESTER, 2005).

o J2SE: Java 2 Standard Edition é o ambiente de desenvolvimento mais utilizado, pois seu

uso é voltado a PCs e servidores, onde há bem mais necessidade de aplicações. Além

disso, pode-se dizer que essa é a plataforma principal, já que, de uma forma ou de outra,

o J2EE e o J2ME tem sua base aqui, por ser a plataforma mais abrangente do Java, o

J2SE é a mais indicada para quem quer aprender a linguagem;

o J2EE: o Java 2 Enterprise Edition é a plataforma Java voltada para redes, Internet,

intranets e afins. Possui bibliotecas especialmente desenvolvidas para o acesso a

servidores, a sistemas de e-mail, a banco de dados, etc. Por essas características, o J2EE

foi desenvolvido para suportar uma grande quantidade de usuários simultâneos.

o J2ME: o Java 2 Micro Edition é o ambiente de desenvolvimento para dispositivos

móveis ou portáteis, como telefones celulares e palmtops. Como a linguagem Java já era

Page 48: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

38

conhecida e a adaptação ao J2ME não é complicada, logo surgiram diversos tipos de

aplicativos para tais dispositivos, como jogos e agendas eletrônicas.

2.4.2. JSP

O JSP (Java Server Pages), é uma tecnologia desenvolvida pela Sun Microsystems, usada

para servir conteúdo dinâmico para o usuário utilizando-se de uma lógica de dados no lado do

servidor. Permite ao desenvolvedor produzir aplicações que permitam o acesso à banco de dados

(que é o caso da empresa), a arquivos-texto, a captação de informações a partir de formulários, a

captação de informações sobre o visitante e sobre o servidor, o uso de variáveis e laços de repetição

entre outras características (UNITO ,2005).

Uma página JSP não é mais que uma página Web normal que contém porções de códigos em

Java e porções de códigos em Html junto com outros elementos como os servlets e os JavaBeans

que proporcionam informação adicional ao terminal no qual a página vai ser visualizada. O JSP não

oferece nada mais do que se possa conseguir com os servlets puros, entretanto, oferece a vantagem

de ser facilmente codificado, facilitando assim a elaboração e manutenção de uma aplicação, além

de permitir separar a programação lógica (parte dinâmica) da programação visual (parte estática),

facilitando o desenvolvimento de aplicações mais robustas, onde programador e designer podem

trabalhar no mesmo projeto, mas de forma independente. Outra característica do JSP é produzir

conteúdos dinâmicos que possam ser reutilizados (UNICAP, 2001).

As paginas JSP são um tipo de arquivo muito parecido com as páginas ASP, porém tem a

vantagem da portabilidade de plataforma podendo ser executado em muitos Sistemas Operacionais

como Microsoft Windows, Linux, Solaris, Mac OS, etc. Por definição, JSP usa Java como sua

linguagem de scripts, e por esse motivo o JSP se apresenta mais flexível e mais robusto do que

outras plataformas baseadas simplesmente em JavaScripts e VBScripts (UNICAP, 2001).

Antes que se possa usar o JSP é necessário instalar um servidor web, e um servidor JSP (que

inclui um servlet engine). Muitos servidores JSP já incorporam um servidor web, de modo que para

o desenvolver é suficiente ter somente um servidor. O NetBeans, ferramenta utilizada para o

desenvolvimento deste trabalho, já possui um servidor JSP (Tomcat) embutido por padrão. Para

executar um arquivo .jsp no NetBeans é muito simples, bastando clicar no botão executar, com o

arquivo selecionado. Esta ação instancia ambos, o servidor JSP e um browser, sendo os resultados

apresentados em seguida. As mensagens de erros emitidas pelo Tomcat dizem muito pouco ao

Page 49: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

39

desenvolvedor, sendo para resolver alguns problemas é preferível, em muitos casos, usar o servidor

Resin (J2EEBrasil, 2005).

Quando o cliente faz a solicitação de um arquivo JSP, é enviado um object request para a

JSP engine. A JSP engine envia a solicitação de qualquer componente (podendo ser um JavaBeans

component, servlet ou enterprise Bean) especificado no arquivo. O componente controla a

requisição possibilitando a recuperação de arquivos em banco de dados ou outro dado armazenado,

em seguida, passa o objeto response de volta para a JSP engine. A JSP engine e o Web server

enviam a página JSP revisada de volta para o cliente, onde o usuário pode visualizar os resultados

através do navegador. O protocolo de comunicação usado entre o cliente e o servidor pode ser

HTTP ou outro protocolo. A Figura 10 ilustra a o fluxo de uma solicitação de um arquivo JSP.

Figura 10. Fluxo de uma solicitação de um arquivo JSP. Fonte: Unicap (2001)

2.4.2.1. Por que usar JSP?

Existem várias linguagens usadas para criar aplicações web, as principais entre elas são o

ASP, o PHP, o ColdFusion e Perl. Por que usar JSP? O JSP usa Java, que é uma das linguagens

mais populares atualmente e é interpretada, portanto o código escrito em uma arquitetura pode ser

portado para qualquer outra; o JSP é parte do pacote J2EE que é um dos modelos mais usados para

construir aplicações de grande porte, e é suportado por várias gigantes da computação como IBM,

Oracle, Sun, dentre outras. Uma das diferenças que pode ser fundamental para a escolha entre entre

Page 50: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

40

o JSP e o ASP por exemplo, é que o ASP é da Microsoft e só roda em ambiente Windows, e

também todos os softwares necessários são pagos. JSP, é feito pela Sun e roda em qualquer

plataforma que tenha a máquina virtual de Java instalada, e tem vários softwares gratuitos para

disponibilizar a aplicação, por exemplo o Tomcat (PORTALWEBMOBILE, 2006).

Para este sistema, todas as páginas que fazem parte da interface foram desenvolvidas com o

JSP e Html. Componentes que fazem parte desta tecnologia também foram utilizados, como os

servlets, para o controle da aplicação e comunicação dos cadastros com as classes persistentes e os

beans que fazem a persistência do sistema.

2.4.2.2. JavaBeans

Um JavaBean, ou simplesmente um Bean, é uma classe de Java que segue um conjunto de

convenções simples de design e nomeação delineado pela especificação de JavaBeans. Os Beans

não precisam estender uma determinada classe ou implementar uma determinada interface. As

convenções de JavaBean são o que nos permitem desenvolver Beans, porque elas permitem que o

container Bean analise um arquivo de classe Java e interprete seus métodos como propriedades,

designando a classe como um Bean de Java.

Beans são simplesmente objetos Java., mas como seguem um padrão fica mais fácil

trabalhar com eles. Uma boa prática é colocar Bean no nome de uma classe que é um Bean, para

que seja melhor identificado. Assim uma classe que representa uma pessoa ficaria PessoaBean ou

BeanPessoa (PORTALWEBMOBILE, 2006).

2.4.2.3. Servlets

Servlets são programas Java que usam a API (Application Programming Interface) do Java

Servlet. Para se utilizar este tipo de arquivo com o JSP, é necessário empacotar os servlets em um

arquivo .WAR (Web Archive) ou módulo da Web para a implementação para o servidor de

aplicativos. Os servlets são executados em um servidor Web habilitado para Java e tem a finalidade

de estender as capacidades de um servidor, de maneira semelhante aos applets, que quando são

executados em um navegador, estendem as capacidades do mesmo. Os servlets podem suportar

conteúdo dinâmico de páginas da Web, fornecer acesso à banco de dados, atender a vários clientes

ao mesmo tempo e filtrar dados (WEBSPHERE, 2005).

Page 51: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

41

Os servlets são programas que estendem as funcionalidades de um web server, gerando

conteúdo dinâmico e interagindo com os clientes, utilizando o modelo request/response. Eles não

são restritos ao modelo HTTP de request/response, onde na realidade são pequenas aplicações de

servidores, mas o modelo HTTP é o modelo mais comumente utilizado. A Figura 11 ilustra um

exemplo de uma arquitetura com servlets.

Figura 11. Exemplo de arquitetura de servlets. Fonte: Adaptado de ADTMAG (2006)

Optou-se pelo uso de servlets, pelo fato de ter uma estrutura que favorece seu acesso e

encaixar-se perfeitamente ao escopo do sistema. Para utilizá-los, foram encontradas algumas

dificuldades no que diz respeito a estrutura das classes que o servlet herda. Mas através de

pesquisas em sites oficiais Java e fóruns de discussão todas as dúvidas de funcionamento e

configuração foram sanadas.

2.4.3. Padrão MVC

MVC (Model View Controler), é o padrão para desenvolvimento Java para Web da SUN

Microsystems. Foi criado originalmente na linguagem Smalltalk para desenvolvimento de

aplicações gráficas. A sigla MVC vem do inglês Model View Controller (Modelo Visualização

Controle).

As camadas podem ser melhor descritas como segue:

o Model: é onde estão as regras de negócio e o acesso aos dados no sistema.

o View: é onde os dados serão apresentados ou requisitados ao usuário. Os dados são

acessados na base pela camada Model e repassados para a camada View para serem

apresentados, ou são requisitados pela camada View e repassados para a camada Model

para serem persistidos.

Page 52: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

42

o Controller: o Controller é o responsável por fazer a ligação do View com o Model. É o

Controller que vai saber qual ação do Model deve ser chamada em cada requisição do

View.

Quando um sistema é desenvolvido utilizando a arquitetura MVC, os códigos referentes às

diferentes camadas ficam separados do resto do sistema, e sua manutenção se torna mais simples. A

troca completa de uma camada pode ser feita sem gerar efeitos nas outras, além do que múltiplas

camadas de visualização, podem compartilhar da mesma camada de negócios.

O ganho para o desenvolvimento é o de poder separar melhor as responsabilidades, diminuir

código JSP e aumentar a reusabilidade. Neste padrão é utilizada a arquitetura de implementação

com servlet, JavaBeans e JSPs. O Controle fica a cargo de um servlet que gerencia o fluxo da

aplicação Web, o Modelo é delegado para um JavaBeans e a Visualização é de responsabilidade de

uma JSP, que produz uma saída em Html para o navegador Web do cliente. A estrutura do padrão

MVC pode ser visualizada na Figura 12.

Figura 12. Arquitetura do padrão MVC. Fonte: Adaptado de JAVANOROESTE (2006)

2.4.4. MySQL

O MySQL é um servidor de banco de dados SQL multiusuário/multitarefa, que é formado

por uma implementação cliente/servidor que consiste em um servidor Mysqld e diferentes

programas e bibliotecas de clientes. O MySQL controla o acesso para que vários usuários possam

Page 53: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

43

acessar os dados ao mesmo tempo, e assegura que só o usuário autorizado possa obter acesso.

Utiliza linguagem padrão de consulta SQL, que é uma linguagem padronizada para fazer operações

como inserção, atualizações, exclusões e acessos a informações de banco de dados. Os principais

diferenciais do MySQL são a velocidade, robustez e facilidade de utilização. É desenvolvido,

distribuído e tem suporte da MySQL AB. A MySQL AB é uma empresa comercial, fundada pelos

desenvolvedores do MySQL, cujos negócios é fornecer serviços relacionados ao sistema de

gerenciamento de banco de dados MySQL. (MYSQL, 2006).

2.4.4.1. Principais características do MySQL

O MySQL possui várias características e vantagens para o desenvolvimento, como

(MYSQL, 2006):

o Um dos melhores desempenhos do mercado;

o Está disponível sem nenhum custo, sob uma licença Open Source, ou a baixo custo sob

uma licença comercial, se necessário para aplicação;

o Trabalha com várias plataformas diferentes;

o É possível misturar tabelas para diferentes bancos de dados em uma mesma query;

o Fácil configuração;

o Capacidade de manipulação de tabelas com mais de 50.000.000 de registros;

o Fácil e eficiente na administração de privilégios de usuários;

o Sistema de senhas criptografadas flexível e seguro;

o Disponível como versão cliente/servidor ou embutida;

o Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4 e 8 bytes com e sem sinal,

FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME,

TIMESTAMP, YEAR, SET e ENUM;

o Completo suporte a operadores e funções nas partes SELECT e WHERE das consultas;

o Suporte pleno às cláusulas SQL GROUP BY e ORDER BY;

Segundo Dumond & Paula (2005), o MySQL, em versões mais antigas possui algumas

limitações, como:

Page 54: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

44

o Não implementa integridade referencial e chaves estrangeiras;

o Por padrão trabalha em modo autocommit, ou seja, não possui suporte a transações;

o Não suporta pesquisa em dois índices diferentes utilizando OR;

o No UNIX os nomes de tabelas e banco de dados são case sensitive (para todas as

versões); e

o Não suporta atributos obrigatórios.

2.4.5. NetBeans

Desenvolvido em Java, o NetBeans é um ambiente de desenvolvimento Open Source

produzido pela Sun Microsystems que tem como objetivo se tornar uma ferramenta RAD (Rapid

Application Development) para desenvolvimento de aplicativos Java nos mesmos moldes de seu

principal concorrente, o produto proprietário JBuilder, da Borland. Possui um sistema de

gerenciamento de projetos através da "montagem" de diretórios, como nos sistemas de arquivos

tradicionais do Linux, permitindo o desenvolvimento concorrente, ou seja, mais que um

programador pode trabalhar simultaneamente em um mesmo arquivo (LINUXMAGAZINE, 2006).

Seu editor de textos integrado oferece os recursos de completar automaticamente trechos de

código, visualizar métodos e atributos de objetos, identação de código e identificação, em tempo de

programação, dos trechos de código que possuem erros, o que aumenta a produtividade do

programador. Assim como em outras IDEs, o NetBeans possui visualizador de classes e ferramenta

para auxiliar na criação delas; porém, seu diferencial está no editor integrado de interfaces, que gera

automaticamente um código limpo e de fácil compreensão para leitores de código em texto puro,

caracterizando-o tanto como uma útil ferramenta RAD, quanto como um confiável framework para

produção de interfaces (LINUXMAGAZINE, 2006).

Além das funcionalidades de edição de código, possui recursos de depuração,

desenvolvimento de aplicações web utilizando Java Server Pages (JSP's) ou Servlets através do

servidor Tomcat e, em uma versão específica, funcionalidades para desenvolvimento de aplicações

móveis, além de recursos de análise de código através de técnicas de engenharia de software,

ferramentas de banco de dados e de códigos XML. E, por ser desenvolvido em Java, apesar de sua

performance poder deixar a desejar quando utilizado em máquinas mais antigas, é uma ferramenta

Page 55: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

45

expansível e pode ser encontrada em versões para diversas plataformas (LINUXMAGAZINE,

2006).

Page 56: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

46

3. DESENVOLVIMENTO

3.1. Introdução

Satisfazer o cliente é uma tarefa difícil de ser alcancada, mas com a era da informatização

muitas coisas começaram a mudar dentro das empresas. Os clientes são a peça chave para que uma

empresa consiga sobreviver, e para obter uma fidelidade maior dos clientes as empresas apostam

em melhorias contínuas usando todos os recursos tecnológicos ou não para deixar o cliente sempre

bem informado.

Como já citado, a melhoria no atendimento é um ponto fundamental para aumentar a

satisfação, e foi pensando neste aspecto que este projeto foi viabilizado em parceria com uma

indústria. Não basta somente possuir informações sobre o que os clientes compram, ou o quanto

eles compram, mas as empresas precisam saber também como anda a aceitação de seu produto;

quais os problemas que esses produtos apresentam ao cliente; como ajudar a resolver estes

problemas.

Este projeto possui como principal proposta, melhorar a iteração entre o cliente final e a

empresa, criando uma conexão direta onde o próprio cliente possa buscar as informações que

necessita, sem ter que entrar em contato via telefone. O objetivo é fornecer informações técnicas

sobre os problemas que os produtos apresentarem, e também captar uma maior quantidade de

informações sobre estes problemas através do Help Desk on-line. Desta forma esta base de

conhecimento, no futuro também pode ser utilizada para obter dados estatísticos sobre estes

problemas.

3.2. Sistema Proposto

Este sistema foi desenvolvido com o intuito de auxiliar a empresa no atendimento ao cliente

através deste canal de comunicação direto, e com isso diminuir a carga de atendimento via telefone

que o Setor de Atendimento ao Cliente hoje possui. Também é importante ressaltar que todo o

conhecimento para modelar a base de conhecimento foi obtido através de experiências passadas

enfrentadas em problemas que foram resolvidos pelos especialistas da empresa.

Como a empresa fabrica um grande número de modelos de máquinas, e cada modelo pode

ter características diferenciadas, o sistema teve que ser projetado para suportar essas diferenças

Page 57: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

47

entre os diversos modelos, e também para que os novos modelos que surgirem possam ser

adicionados a base de conhecimento sem ter maiores transtornos. Ele possui uma base de dados

dinâmica, onde cada produto pode ter uma estrutura diferente e possuir uma base de conhecimento

que tenha atributos referentes a sua estrutura. Quando um novo produto é cadastrado, ele pode ser

definido com todos os atributos que aquele produto possui, formando assim uma base de

conhecimento para aquele produto.

No desenvolvimento deste sistema não foi utilizada nenhuma Shell de RBC. Para que se

obtivesse um maior conhecimento prático sobre a técnica de RBC, optou-se pela implementação

total do protótipo.

Para a implementação do protótipo foi utilizada a ferramenta de programação do NetBeans

5.0, que possui uma interface para programação muito boa para ser utilizada com o Java, além de

uma ferramenta de depuração que proporcionou uma maior comodidade para desenvolver. O JSP

foi a linguagem escolhida, primeiro porque utiliza Java e o Java possui um suporte total a

orientação a objetos; depois por ser uma linguagem multiplataforma muito utilizada na atualidade,

que apesar de ser em boa parte Open Source possui recursos fantásticos como a utilização dos

JavaBens e dos Servlets. Para desenvolvimento Java, foi utilizado o JDK 5.0, que é a última versão

lançada e serviu como base para a implementação das classes Java.

O Banco de dados utilizado foi o MySQL 4.01, que é a versão atual do banco de dados da

empresa, além de ser um banco de dados leve, possui uma alta capacidade de armazenamento e um

bom desempenho para utilização na web. Para conexão com o banco de dados foi utilizado o driver

JDBC (Java DataBase Connectivity) do MySQL mysql-connector-java-3.1.10-bin, que é uma das

versões mais recentes. O servidor de JSP foi o Apache Tomcat 5.5.9, também muito popular entre

programadores JSP. Este servidor foi instalado tanto no sistema operacional Windows XP, quanto

Linux, não apresentando nenhum tipo de problema em nenhum dos sistemas operacionais testados.

O desenvolvimento deste Sistema seguiu as seguintes etapas: modelagem do sistema, onde

foi realizada toda a análise e projeção através da definição dos requisitos, criação dos digramas de

caso de uso, diagramas de seqüência, modelos físico e lógico; definição das tecnologias utilizadas

para o desenvolvimento pelo sistema; depois foi realizada a estruturação do RBC, que é a seqüência

de desenvolvimento do RBC bem como a implementação dos métodos utilizados para cálculo da

similaridade; logo após foram realizados os testes de validação do protótipo.

Page 58: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

48

3.3. Modelagem do Sistema

Para a modelagem do sistema proposto utilizou-se a ferramenta Enterprise Architect que

apesar de ser um software proprietário, é a ferramenta que atualmente a universidade disponibiliza

para este fim. Existem alternativas de modelagem UML como o i. e. JUDE, que é free e que

também poderia ser utilizado. Para representação foram utilizados os diagramas de casos de uso, de

seqüência e o modelo de dados além da análise de requisitos.

3.3.1. Análise de Requisitos

Para o sistema proposto, através das análises do problema apurado durante o período de

estudo, foram levantados alguns requisitos básicos para o funcionamento do Help Desk. O maior

objetivo desta seção é identificar e documentar o que é realmente necessário, desta forma

comunicando a todos os envolvidos no projeto da forma mais clara possível, de maneira não-

ambígua de modo que os riscos sejam identificados para que não ocorram imprevistos.

3.3.1.1. Requisitos Funcionais

Nesta seção são descritas diversas funções que o sistema precisa possuir, definindo assim a

funcionalidade desejada através da ocorrência de eventos internos ou externos ao sistema. A Figura

13 mostra os requisitos funcionais levantados.

Figura 13. Requisitos Funcionais

Page 59: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

49

3.3.1.2. Requisitos Não-Funcionais

O objetivo desta etapa é permitir a portabilidade da aplicação entre diferentes plataformas e

tirar proveito das últimas tecnologias para o desenvolvimento de aplicações com interface através

da Internet. A Figura 14 mostra os requisitos não-funcionais levantados.

Figura 14. Requisitos Não-Funcionais

3.3.2. Diagramas de Casos de Uso

Estes diagramas mostram um conjunto de casos de uso e de atores e as respectivas relações

entre eles. Estes diagramas são importantes para organizar e modelar as funcionalidades principais

do sistema. São utilizados para obter uma melhor perspectiva funcional do sistema para a visão dos

seus utilizadores. A Figura 15 mostra o Use Case do Administrador do Sistema, onde pode ser

visualizado o cenário em que ele atua, bem como as funções que ele pode realizar.

Page 60: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

50

Figura 15. Use Case do Administrador

UC 01 – Configura Usuário

Possibilita o cadastramento, alteração e exclusão e consulta dos usuários que fazem parte da

área restrita do sistema.

UC 02 – Consulta Casos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

acessar e utilizar a consulta de casos cadastrados.

UC 03 – Aprova Casos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

acessar e utilizar a consulta de casos pendentes, e como deve preceder para efetuar a aprovação dos

mesmos.

Page 61: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

51

UC 04 – Cadastra Casos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

acessar o cadastro de novos casos e configurar um novo caso para inserção na base de

conhecimento.

UC 5 – Cadastra Produtos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

cadastrar, alterar, excluir e consultar produtos no sistema.

UC 06 – Cadastra Conjuntos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

cadastrar, alterar, excluir e consultar conjuntos no sistema.

UC 07 – Cadastra Problemas

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

cadastrar, alterar, excluir e consultar problemas no sistema.

UC 08 – Cadastra Estados

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

cadastrar, alterar, excluir e consultar estados de problemas no sistema.

UC 09 – Consulta Atendimentos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

acessar a consulta aos atendimentos efetuados pelo site.

UC 10 – Cadastra Grupo Produtos

Este caso de uso descreve como um usuário que tem acesso à área restrita do sistema pode

cadastrar, alterar, excluir e consultar grupo de produtos no sistema.

A Figura 16 mostra o Use Case do Cliente, onde o cliente tem como cenário principal a

Consulta de Casos que é a idéia base do Sistema Proposto. Neste cenário o Cliente pode definir o

problema que está procurando resolver, buscando possíveis soluções em problemas semelhantes que

já ocorreram.

Page 62: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

52

Figura 16. Use Case do Cliente

UC 11 – Consulta Caso

Este caso de uso descreve como um usuário cliente pode acessar o site da empresa,

cadastrar-se e configurar um caso para consultar na base de dados do sistema.

A descrição detalhada de todos os cenários dos Casos de Uso, Diagramas de Seqüência,

diagramas de Entidade Relacionamento e tabelas que fazem parte do sistema, pode ser encontrado

na seção Apêndice A.

3.4. ANÁLISE DOS DADOS

A indústria em questão possui um pequeno cadastro com informações básicas sobre

atendimentos efetuados pelo setor de atendimento ao cliente nos últimos meses, contendo em sua

estrutura, informações sobre o produto, cliente, um campo de texto contendo a descrição da

ocorrência e outro com a ação tomada. Este cadastro, no entanto, possui muitas informações

incoerentes que precisam ser redefinidas para poder ser utilizado neste projeto.

Para tanto, foi realizada uma avaliação das informações existentes, através de relatórios

extraídos da base, onde o técnico da empresa analisou todos os registros e tudo o que foi

considerado incoerente foi descartado. O que foi considerado proveitoso passou por uma nova

avaliação de um técnico da empresa para que pudesse fazer parte da base inicial de casos nos

formatos propostos para o sistema de Help Desk.

3.5. ESTRUTURAÇÃO DO RBC

Após terem sido realizados as etapas do levantamento teórico, estudo de ferramentas de

RBC semelhantes e que possuíssem características que pudessem ser reaproveitadas no sistema

proposto, além de se ter desenvolvido uma pesquisa sobre as tecnologias a serem utilizadas e

realizar o projeto do sistema, iniciou-se o desenvolvimento do Sistema de Help Desk para Web

utilizando Raciocínio Baseado em Casos, começando pelas etapas que o ciclo de vida de um RBC

compreende. Um pequeno exemplo do fluxo geral do sistema pode ser visualizado como mostra a

Page 63: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

53

Figura 17, que compreende as etapas que vão do acesso do cliente através da Internet onde ele

descreve o problema em uma tela padrão, quando o cliente submete a consulta o sistema aciona um

módulo de RBC para encontrar as soluções similares. Logo após o sistema exibe uma lista com os

casos mais similares, onde o cliente pode escolher um dos casos que se encaixe com o seu problema

ou descartar. Neste momento o sistema verifica se deve armazenar ou não o caso para

aprendizagem.

Figura 17. Fluxo de consulta ao RBC.

3.5.1. Aquisição do Conhecimento

Para o desenvolvimento de um sistema de RBC, faz-se necessário a utilização do

conhecimento junto a especialistas da área em que o sistema está sendo desenvolvido, pois somente

estes especialistas possuem o domínio total sobre o conhecimento necessário para o

desenvolvimento da aplicação. Para se adquirir tal conhecimento é preciso que se criem alguns

critérios, ou modelos para serem utilizados para a população da base de conhecimento do RBC.

O primeiro passo realizado foi realizar uma análise em conjunto com os técnicos da

empresa, onde foi definida uma metodologia para população da base inicial de conhecimento.

Decidiu-se que para a população inicial da base seriam cadastrados quatro produtos que possuem

um grande volume de vendas no mercado. Como a base trabalha de forma dinâmica, foram

Page 64: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

54

identificados os atributos de cada produto escolhido, e só então cadastrado a estrutura do produto,

onde também foi definido o método para cálculo de similaridade e o peso de cada atributo. Para que

a definição da estrutura fosse realizada de maneira adequada foi fundamental a utilização do

conhecimento dos técnicos sobre os produtos e os problemas já foram apurados pelo setor de

assistência ao cliente.

Como a indústria possuía um pequeno cadastro de informações sobre os atendimentos

efetuados, foi realizada uma pesquisa sobre estas informações para apurar a possibilidade de

utilização das mesmas na população da base de conhecimento inicial. Como o cadastro não tinha

nenhum tipo de formatação de entrada de dados, ou seqüência de preenchimento, e servia somente

como uma anotação para auxilio dos técnicos como se fosse uma ficha do cliente, foi constatado

que poucos dados do que havia no cadastro era realmente útil para o escopo do sistema, e que o

trabalho de reutilização não seria viável.

Sendo assim, a população da base inicial de casos, bem como para a definição das variáveis

e seus respectivos pesos, ficou por conta dos técnicos do setor de assistência ao cliente da empresa,

pois são eles que possuem o conhecimento necessário para que os dados fiquem de uma forma

coerente na base de conhecimento. Como não foi possível reaproveitar os dados antigos que a

empresa possuía, o cadastramento dos casos foi iniciado com uma base totalmente limpa.

3.5.2. Representação dos Casos

Após ter-se definido os atributos durante a etapa de aquisição do conhecimento, fez-se

necessário identificar a melhor técnica para a representação dos casos de acordo com o modelo

proposto, onde foi definido como a memória de casos do sistema ficou disposta(WANGENHEIM &

WANGENHEIM, 2003).

Para representação da estrutura dos casos decidiu-se pela utilização de frames para

modelagem do conhecimento, pois esta estrutura possui características que atenderam às

necessidades apresentadas pelo modelo proposto, proporcionando uma representação que modela a

memória de casos de forma simplificada e dinâmica. Para tanto, foi utilizada uma estrutura de dados

formada por listas encadeadas com tamanho variável onde ficam armazenados os dados. Isso

possibilita carregar na memória somente os atributos relevantes para o cálculo da similaridade e

recuperação.

Page 65: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

55

Um frame é uma estrutura de dados semelhante a uma rede contendo nós e relações, onde os

níveis superiores são fixos (os casos por exemplo), e representam verdades para determinada

situação, e os níveis mais baixos são chamados de slots, ou nodos terminais que devem ser

preenchidos com instâncias específicas de dados relativos ao conceito (neste caso as instâncias são

os atributos de cada caso) (MIRANDA, 2000).

A Figura 18 exibe a estrutura de um caso modelado no sistema.

Figura 18. Estrutura de um caso

Um caso para este sistema precisa possuir a seguinte estrutura:

o Código do caso: que é o código único de cada caso;

o Grupo de produtos: que é a classe a qual o produto pertence (ex. máquinas elétricas,

máquinas a gasolina, etc);

Page 66: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

56

o Produto: que é o objeto principal de referência para o cliente;

o Conjunto: os conjuntos, que são as partes que servem para dividir os componentes dos

produtos em grupos, ex. motor, parte elétrica, etc. Cada produto pode ter n conjuntos;

o Problemas: cada problema faz parte de um conjunto, e um conjunto pode ter n

problemas. Por exemplo, no conjunto do motor podemos ter um problema de “o motor

está apanhando?”; e

o Estados do problema: cada problema pode possuir n estados, e seguindo o exemplo

anterior, se o conjunto motor de um produto possuir um problema de “o motor está

apanhando?”, as possíveis respostas podem ser: “normal”, que significa que não há

problemas com o motor, ou simplesmente “sim” que vai indicar que há algum problema.

3.5.3. Método de Recuperação

Na seqüência da implementação dos ciclos de vida do RBC, uma das principais etapas do

desenvolvimento é a definição dos métodos de recuperação de casos. São poucas às vezes em que

apenas um método de recuperação é utilizado, pois a combinação entre mais de um método permite

uma maior precisão para aquilo que está pretendendo-se recuperar (WANGENHEIM &

WANGENHEIM, 2003).

Na etapa de projeto do sistema foi definido pela utilização de uma combinação entre os

métodos de Contagem de Características, e o método do Vizinho mais Próximo (Nearest Neighbour

Retrieval). A combinação entre estas duas técnicas também pode ser chamada de Métrica Híbrida e

é muito utilizada em sistemas de RBC.

Como já citado anteriormente, ficou a cargo do técnico da empresa a definição dos

problemas (variáveis), e seus respectivos pesos a serem considerados no cálculo para recuperação

dos casos mais similares, pois somente o especialista pode avaliar a importância que cada variável

tem dentro de um determinado cenário. No sistema os pesos são distribuídos com valores de 1 a 10,

sendo os valor 1 o de menor importância, e o valor 10, o de maior importância para o cálculo.

Entre as funções que são utilizadas para a medida da distância, a fórmula para o cálculo de

distância aplicada para recuperação dos casos, foi a Distância City-Block, que considera o módulo

da distância de cada atributo do novo caso com os casos da base. O motivo pelo qual esta função foi

Page 67: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

57

escolhida foi pelo fato de que, apesar de ser uma função de fácil implementação, encaixa-se

perfeitamente no projeto inicial do sistema.

A avaliação dos casos é feita seguindo os seguintes critérios: quando um caso é consultado

na base de conhecimento, primeiro o sistema busca para avaliação todos os casos que tenham

grupo, e produto iguais ao do caso consultado. Depois é realizada uma varredura em todos os casos

encontrados e verificado todos os problemas (variáveis), e estados dos problemas. A cada problema

pesquisado é realizada uma verificação para ver qual método de avaliação será aplicado para

calcular a similaridade. Se o método for o de Contagem de características é verificado se o estado

do problema do caso consultado é igual o do caso da base. Se for igual é aplicada a fórmula para

este método, senão passa-se para o próximo problema. Se for o método do Vizinho Mais Próximo, é

aplicada a fórmula da distância escolhida para verificar o quanto esta característica é parecida ou

não com o caso. Serão listados como resultado somente os dez casos mais similares.

Para exemplificar melhor o cálculo da similaridade toma-se como base os casos

denominados A e B armazenados na base de conhecimento. O novo caso é representado por N. Os

valores para os atributos considerados para este exemplo estão descritos conforme as Tabelas 1 a 4.

Tabela 1. Atributos do caso e seus parâmetros.

ATRIBUTOS MÉTODO PESO Como está o tubo de ventilação? Contagem 2 A extensão foi testada? Contagem 2 Como está o nível de ruído? Vizinho 4

Tabela 2. Atribuição de valores para atributos do método Contagem.

ATRIBUTOS VALORES Como está o tubo de ventilação? Normal / O tubo esta amassado A extensão foi testada? Sim / Não

Tabela 3. Atribuição de valores ao atributo “Como está o nível de ruído?”.

VALORES PESOS Normal 1 Médio 3 Alto 5

Page 68: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

58

Os valores para os atributos dos casos está disposta como a seguir:

Tabela 4. Valores dos atributos dos casos.

ATRIBUTOS CASO N CASO A CASO B Como está o tubo de ventilação? Normal Normal O tubo está amassado A extensão foi testada? Sim Não Não Como está o nível de ruído? Médio Alto Normal

O cálculo para o Caso A fica disposto da seguinte forma:

ScoreContagem: ((1 * 0.1) + (0 * 0.3)) = 0.1

ScoreVizinho: (1 / |3 – 5|) * 0.4 = 0.2

ScoreTotalA: 0.1 + 0.2 = 0.3

O cálculo para o Caso B fica disposto da seguinte forma:

ScoreContagem: ((0 * 0.1) + (0 * 0.3)) = 0

ScoreVizinho: (1 / |3 – 1|) * 0.4 = 0.2

ScoreTotalB: 0 + 0.2 = 0.2

Na fórmula da distância do método do Vizinho Mais Próximo pode-se observar que é

aplicado a divisão do valor 1 sobre o valor do módulo. Este processo foi aplicado, pois para este

método o menor valor é o maior, e isto dificultava na hora de juntar com o score da Contagem de

Características, que é ao contrário. Esta divisão, portanto, tem a finalidade de inverter os valores do

método transformando o menor em maior e vice-versa, desta forma resolvendo o problema da

junção dos dois métodos.

Como ilustrado, calculando-se a similaridade entre o caso A e o caso N a obtém-se o valor

de 0.30, e a similaridade entre o caso B e o caso N é igual a 0,20. Avaliando-se as distâncias

calculadas entre os casos, pode-se afirmar que o vizinho mais próximo de N é o caso A, pois

alcançou a maior pontuação portanto possui maior similaridade.

3.5.4. Adaptação

Por fim, foi desenvolvido o método de adaptação para o sistema de Help Desk, cuja

característica de funcionamento é discutida a seguir:

Page 69: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

59

Ao final de um acesso no módulo de suporte, o sistema automaticamente armazena os novos

casos na base. A princípio a forma de adaptação seguirá os seguintes critérios: o sistema armazenará

todos os casos que forem avaliados na base de conhecimento. O novo caso será inserido com um

status de pendente (campo da tabela de casos “resolvido” com valor igual a “N”), o que servirá para

diferenciá-lo de casos que já foram aprovados, e estão sendo utilizados na base de conhecimento

como base para as consultas. O administrador da base de conhecimento fará a avaliação dos novos

casos inseridos através de uma consulta de casos pendentes, onde serão listados somente os casos

com o status de não resolvido. Após a localização dos novos casos, o administrador faz uma

avaliação caso a caso, onde ele possui as seguintes opções: aplicar o novo caso na íntegra como foi

inserido pelo sistema, adaptá-lo de maneira que a base fique mais refinada ou simplesmente

descartá-lo.

3.6. Implementação do Protótipo do Sistema

Após terem sido concluídas todas as etapas de projeto e modelagem do sistema, a etapa de

implementação é a etapa onde é possível dar vida ao sistema proposto. Nesta etapa, além de colocar

em prática o que foi previamente definido, também foi possível verificar pequenos equívocos na

modelagem e projeto que puderam ser corrigidos para que o sistema tivesse um funcionamento

ideal.

Algumas alterações foram aplicadas principalmente na estrutura da base de conhecimento e

corrigidas na modelagem, como a mudança do nome das seguintes tabelas: “problema” para

“conjunto”, “prod_prob_causa” para “conj_problema”, “causa” para “problema”,

“prod_prob_causa_est” para “prob_estado”, e “caso_causa” para “caso_problema”. Com estas

mudanças obteve-se uma melhor visualização e um melhor entendimento da estrutura da base de

conhecimento.

Outra modificação importante da base de conhecimento foi que o relacionamento da tabela

“problemas”, que agora se tornou “conjuntos”, que antes era na tabela “caso”, passou para a tabela

“caso_problema”, desta forma dando uma maior flexibilidade e conseguindo armazenar todos os

conjuntos que fazem parte de uma máquina em um só local. Este processo deixa claro que neste

sistema cada máquina cadastrada possui uma base de conhecimento específica e dinâmica, o que

facilita o cadastramento de novas máquinas que forem surgindo, ou até mesmo a criação de novos

atributos na base de conhecimento, afetando somente a estrutura da máquina relacionada e não o

RBC como um todo.

Page 70: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

60

3.6.1. Arquitetura do Sistema

Após completadas as alterações necessárias na base e definido as ferramentas que seriam

utilizadas para implementação, iniciou-se a etapa de definição da arquitetura do sistema, bem como

a aquisição e configuração das ferramentas a serem utilizadas, e o primeiro passo dado foi a busca

de todas as ferramentas necessárias para a implementação e implantação do sistema.

Como já citado no item 3.2, para a implementação deste projeto optou-se pela linguagem

Java, e para tanto, a primeira ferramenta buscada foi o ambiente de desenvolvimento Java, o J2SE

(Java 2 Standard Edition) 5.0, que foi baixado diretamente do site da Sun http://java.sun.com/j2se, e

posteriormente instalado e configurado em um sistema operacional Windows XP conforme manual

que acompanha o pacote.

O servidor para as páginas JSP Tomcat 5.5.9 foi baixado do site http://tomcat.apache.org/, e

também foi instalado e configurado utilizando seu manual próprio, onde por padrão ele fica rodando

como um serviço na porta 8080. O servidor de banco de dados do MySQL 4.01, foi baixado do site

do projeto do MySQL http://dev.mysql.com/downloads/ e instalado e configurado conforme o

manual. Após ter o banco de dados rodando foram criadas todas as tabelas que fazem parte da base

conforme a modelagem final definida.

Um exemplo da estrutura do sistema proposto pode ser observado na Figura 19, onde é

ilustrada a arquitetura final do sistema no servidor Linux da empresa que serviu como base. Da

estrutura do servidor Linux para o servidor Windows a única diferença é que para se evitar os

problemas de bloqueio de portas que muitas empresas possuem, o Tomcat teve que ser instalado

como módulo do servidor Apache que a empresa já possuía rodando na porta 80, para também

conseguir rodar na porta 80, em função de que em alguns locais testados as requisições da porta

8080 não serem aceitas.

Page 71: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

61

Figura 19. Exemplo de arquitetura do sistema em um servidor Linux. Fonte: Adaptado de AKADIA (2006)

Desta forma, como pode ser observado o cliente pode fazer tanto requisições para o servidor

PHP quanto para o servidor JSP, todas através da porta 80. Quando o cliente faz uma chamada para

um JSP, o módulo Apache redireciona a requisição para o Catalina Container que aí sim interpreta o

JSP que por sua vez e processa as requisições através do JDK. Estas requisições podem ser para

utilização dos Servlets, Beans ou de acesso ao banco de dados. Processadas as requisições o retorno

é enviado ao cliente através da porta 80.

Para a implementação dos JSP’s, Servlets e dos Beans foi utilizada a IDE (Integrated

Development Environment) do NetBeans 5.0 que pode ser baixado do site

http://www.netbeans.org/downloads/index.html, sendo requisito para sua instalação ter uma versão

do JDK do Java instalado. Esta ferramenta possui uma interface de fácil entendimento e também

recursos que facilitam muito o trabalho do programador. O NetBeans já vem por padrão com um

servidor Tomcat integrado que fica rodando na porta 8084 cada vez que é executado o sistema.

Um dos recursos que o NetBeans possibilita e que foi utilizado para este sistema, foi o uso

do padrão MVC (Model View Controller) para o desenvolvimento. A estrutura de diretórios do

NetBeans pode ser visualizado na Figura 24, que demonstra o sistema e sua organização geral.

Page 72: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

62

Figura 20. Estrutura de diretórios do NetBeans

Segundo a estrutura de pasta ilustrada na Figura 20, os diretórios de um projeto padrão do

NetBeans são os seguintes:

o Web Pages: diretório onde ficam armazenadas as páginas Web, ou seja, os arquivos JSP,

HTML, etc. No caso do Help Desk foram armazenados todos os JSP’s do projeto, e

adicionada uma nova pasta chamada imagens dentro da pasta Web Pages, onde foram

armazenas todas as imagens utilizadas;

o Web Services: diretório onde ficam armazenados os Web Services utilizados pelo

projeto;

o Configuration Files: diretório onde ficam os arquivos de configuração do projeto como

context.xml, web.xml, etc;

o Server Resources: diretório onde ficam armazenados os arquivos de recursos do usuário;

o Source Packages: diretório onde ficam armazenados os pacotes utilizados para o projeto.

Por padrão geralmente são colocados nestes pacotes os Beans e os Servlets;

o Test Packages: diretório onde ficam armazenados os pacotes com as classes de teste;

o Libraries: diretório onde ficam armazenadas as bibliotecas utilizadas no projeto; e

o Test Libraries: diretório onde ficam armazenas as bibliotecas de teste.

Page 73: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

63

Neste sistema, como foi utilizado um padrão MVC para o desenvolvimento, para se obter

uma maior organização, cada entidade foi separada em pastas diferentes, e cada entidade foi

separada em quatro arquivos. A nomenclatura de cada arquivo por convenção seguiu o seguinte

padrão:

o nomedaclasseCt.class: classe responsável pelo controle da aplicação. Recebe requisições

do fluxo de tela e faz a comunicação com o modelo e a classe de acesso a persistência;

o nomedaclasseDb.class: classe que recebe as requisições do controle, acessa a

persistência e retorna o resultado ao controle;

o nomedaclasseFt.class: Servlet que se responsabiliza pelo fluxo de tela, ou seja, atende as

requisições e as distribui para o sistema. Esta classe acessa tanto o controle quanto faz

redirecionamentos para os JSP’s; e

o nomedaclasseMd.class:classe que armazena o modelo da entidade.

Além dos pacotes de cada entidade, para este sistema também foi criado um pacote

chamado utilitários, que contém a classe persistênciaMySQL.java, que é responsável pelo acesso

direto ao banco de dados MySQL, e é somente através desta classe que é possível realizar algum

tipo de operação no banco de dados, e o arquivo conf.properties, que é um arquivo de configuração

que contém as informações sobre nome do usuário, senha de acesso, nome do banco e driver a ser

utilizado para o acesso.

A Figura 21 exibe um exemplo de como ficou a estrutura do pacote da entidade caso e do

pacote de utilitários.

Page 74: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

64

Figura 21. Estrutura de pacotes

O arquivo conf.properties, é um arquivo criado que contém propriedades divididas em pares

atributo-valor, separados pelo sinal de “=”. Este arquivo contém as informações necessárias para a

conexão com o banco de dados, e pode ser configurado em qualquer tempo, não necessitando

recompilar a aplicação para aplicar as novas configurações. Como citado anteriormente, neste

sistema este arquivo fica localizado dentro do pacote utilitários, e é lido diretamente pela classe de

persistência. A Figura 22 exibe um exemplo da configuração do arquivo conf.properties.

driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/Help Desk user=root pass=senha

Figura 22. Exemplo do arquivo conf.properties Fonte: PortalJava (2005).

3.6.2. Módulos do Sistema

Este sistema foi projetado e desenvolvido com dois módulos principais para acesso, sendo

eles módulo de consulta do cliente e o módulo de administração da base de conhecimento. O

módulo de consulta do cliente possui acesso liberado a qualquer usuário. Para se ter acesso ao

módulo de administração do sistema faz-se necessário que o usuário esteja logado no sistema para

ter acesso às opções disponíveis. A Figura 23 exibe a tela inicial do sistema.

Page 75: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

65

Figura 23. Tela inicial do sistema

3.6.2.1. Módulo Cliente

Este é um módulo de acesso liberado para todos os usuários, e é o módulo onde é possível

configurar um problema de um determinado produto, e fazer consultas à base de conhecimento para

tentar obter uma possível solução. Ele possui uma interface onde o usuário cadastra suas

informações, seleciona o produto, e seleciona as opções que melhor retratem o problema que está

sendo avaliado. Na Figura 24 pode ser observada a primeira tela de consulta de casos, onde o

usuário deve preencher todos os campos obrigatoriamente. Esta tela é composta pelas informações

pessoais do usuário e pelos campos para identificação do produto a ser avaliado.

Figura 24. Tela consulta de casos parte 1

Page 76: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

66

Um dos recursos utilizados nesta tela é o da tecnologia AJAX para busca da lista de

produtos de um grupo de produtos. A vantagem da utilização desta técnica é que não é necessário

recarregar a página para preencher a lista toda vez que um novo grupo é atualizado. O AJAX utiliza

JavaScript para fazer a requisição a uma outra página, através da variável XMLHTTPRequest.

Sendo assim toda vez que é selecionado um grupo de produtos é disparada uma função JavaScript

que faz a requisição da página de busca de produtos. Quando a lista é retornada, o componente é

atualizado automaticamente. A Figura 25 exibe a tela inicial para consulta de casos com a lista de

produtos vazia, pois nenhum grupo está preenchido.

Figura 25. Tela lista de produtos vazia.

Já na figura 26 pode-se observar como fica a lista de produtos depois de selecionado um

grupo de produtos.

Figura 26. Tela lista de produtos preenchida.

Após preenchidos todos os campos necessários, o usuário deve clicar sobre o botão

PROSSEGUIR para visualizar a próxima tela. Esta tela expõe todos os conjuntos com os problemas

de cada conjunto (expostos em forma de perguntas), e os estados de cada problema. Os estados são

as opções que o usuário deverá escolher para configurar o problema que deseja consultar (possíveis

respostas para as perguntas). A janela com as opções deste exemplo, pode ser visualizada como

mostra a Figura 27.

Page 77: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

67

Figura 27. Tela consulta de casos parte 2.

Selecionadas todas as opções, conforme se apresenta o produto em questão, o usuário deve

clicar sobre o botão CONSULTAR para que o sistema realize uma busca na base de conhecimento e

retorne uma lista das possíveis soluções encontradas de acordo com os casos que foram

considerados mais similares. Somente os dez casos mais semelhantes serão apresentados para o

usuário. A Figura 33 exibe um exemplo da lista de casos retornados pelo RBC.

Figura 28. Tela resultado da consulta

Page 78: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

68

3.6.2.2. Módulo Administrador

Nesta área, somente usuários cadastrados podem ter acesso através de um login e uma

senha. Neste módulo os usuários que tiverem o acesso podem fazer todas as configurações da base

de conhecimento do Help Desk, como, manutenção de usuários, produtos, casos, estruturação de

produtos, e consultas de casos. A Figura 29 exibe a tela onde o usuário está se logando no sistema

para ter acesso ao menu principal do sistema.

Figura 29. Tela de login.

Estando devidamente autenticado, o sistema exibe um menu com todas as opções

disponíveis para usuários com acesso restrito. Uma das principais opções que um usuário

administrador vai utilizar é o cadastro de produtos, pois é nele que o usuário vai definir a estrutura

da base de conhecimento para aquele determinado produto. Clicando sobre o ícone da coluna

ESTRUT., o usuário tem acesso à estrutura do produto da linha selecionada. Nesta estrutura o

usuário vai definir toda arquitetura da base de conhecimento para o produto em questão. A Figura

30 exibe uma estrutura de produto já definida.

Page 79: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

69

Figura 30. Tela estrutura de produto.

O primeiro passo para se definir uma estrutura de um produto é clicar sobre o botão com o

símbolo de “+” em verde, onde aparece a mensagem “Abre a tela de cadastro de um novo

Conjunto”, quando o mouse é passado sobre ele. Aberta a tela de cadastro, somente é necessário

preencher o campo “Descrição do Conjunto”, e clicar sobre o botão CONFIRMAR. Este processo

deve ser repetido para todos os conjuntos que o produto possuir.

O segundo passo para se estruturar um produto, é definir os problemas que cada conjunto

pode possuir. Estes problemas devem ter sua descrição em forma de perguntas para facilitar ao

usuário o entendimento sobre o mesmo. Para tanto o administrador deve adicionar a pergunta no

campo “Descrição do Problema”, escolher um dos métodos disponíveis para avaliação deste

atributo, e definir o peso deste atributo. Para formulação de uma estrutura, deve-se ressaltar que o

administrador deve possuir um profundo conhecimento sobre o produto, para que se faça a melhor

escolha do método e do peso do atributo, de maneira que a base fique melhor modelada. A Figura

31 exibe a tela de cadastro de problemas.

Page 80: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

70

Figura 31. Tela cadastro de problemas.

A terceira, e última etapa para estruturação de um produto, é fazer a definição de todos os

estados, ou para melhor entender, cadastrar todas as respostas possíveis para as perguntas

cadastradas nos problemas. Nesta tela pode se ter somente o campo “Descrição do Estado”, no caso

de ter sido escolhido o método de “Contagem de Características”, ou também ter o campo “Peso”,

no caso de ter sido escolhido o método do “Vizinho mais Próximo”, onde o administrador define o

peso para cada estado seguindo uma seqüência, onde o estado mais diferente recebe um peso maior,

e o estado mais parecido recebe um peso mais próximo, para que se facilite o cálculo da

similaridade. A Figura 32 exibe a tela de cadastro de estados com todos os campos.

Figura 32. Tela cadastro de estados.

Page 81: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

71

Após ter sido definida a estrutura de um produto por completo, pode-se começar o

cadastramento dos casos na base de conhecimento para esta estrutura. O cadastro de casos é

dividido em duas etapas.

A primeira etapa é escolher o Grupo de Produtos, e o Produto a que o caso se refere, pois

desta forma o sistema busca a estrutura de um caso para este produto e monta na tela assim que o

usuário clicar na opção prosseguir. A Figura 33 exibe a tela de cadastro de um caso e toda a sua

estrutura.

Figura 33. Tela estrutura de um caso.

Nesta tela o administrador deve escolher todas as respostas para os problemas, de acordo

com o diagnóstico e a solução que serão descritos nos respectivos campos. No campo “Caso

Resolvido” o administrador escolhe se o caso fará parte da base para consulta, ou não, caso a opção

selecionada seja “Não”. Para adicionar o novo caso a base de conhecimento basta clicar sobre o

botão “Salvar”.

Page 82: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

72

3.7. Validação e Testes

A etapa de validação e testes teve como objetivo principal analisar o comportamento dos

procedimentos implementados, colocando o sistema a prova com o que era esperado. Esta etapa foi

realizada com o auxílio de um técnico da empresa que avaliou alguns princípios de ergonomia, mas

o objetivo principal foi avaliar o comportamento geral do sistema mediante uma bateria de

consultas efetuadas na base de conhecimento.

Primeiramente, foi avaliada a ergonomia do sistema: telas, cores, indicações, etc. Em um

primeiro momento, foi verificado que na maioria do sistema a ergonomia está de acordo com o

esperado, no entanto, algumas telas como a de Estrutura do Produto necessitará de algumas

melhorias para facilitar o entendimento de cada informação, principalmente na parte de ergonomia.

Em outros testes realizados foram avaliadas as demais funcionalidades do sistema como o acesso e

os cadastros em geral que apresentaram resultados satisfatórios.

Durante os testes gerais sobre o comportamento e a coerência das respostas listadas pelo

Sistema, nas consultas realizadas, obteve-se uma avaliação dentro do esperado, excelente do ponto

de vista de resposta. Em torno de 71% dos testes obteve-se sucesso nessas respostas listadas pelo

sistema, ou seja, o sistema retornou uma resposta útil para o caso consultado.

Também foi constatado que é possível melhorar o percentual de acertos do sistema. Para isto

faz-se necessário uma avaliação dos atributos da base, fazendo um refinamento melhorado sobre a

distribuição dos pesos para cada atributo.

Embora a ferramenta não esteja totalmente funcional para campo, por se tratar de um

protótipo, o sistema de Help Desk foi considerado de uma forma geral dentro das expectativas,

alcançando os objetivos projetados inicialmente.

Para que a ferramenta seja utilizada com todo o potencial esperado, serão realizados mais

testes, pois é somente com estes que poderemos identificar possíveis desvios ou imprecisões nas

respostas, que poderão comprometer o resultado final proposto pelo sistema.

Page 83: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

73

4. CONCLUSÃO

Empresas buscam constantemente aumentar o nível de satisfação de seus clientes, e o

Sistema desenvolvido teve como objetivo contribuir para este aumento principalmente nos

seguintes aspectos: disponibilizar um canal direto entre o cliente e a empresa 24 horas por dia, onde

o cliente conseguisse tentar resolver os problemas apresentados pelos produtos comprados, sem ter

que estar efetuando ligações telefônicas para a empresa; diminuir os gastos com ligações telefônicas

e de pessoal necessário para o atendimento; e formar uma base de conhecimento onde tudo fique

armazenado, para que essas informações possam ser reutilizadas em situações futuras.

Muitos sistemas, ou páginas de suporte técnico de empresas, proporcionam ao cliente

somente respostas sobre problemas pré-formatados de uma forma mais genérica, não deixando o

usuário livre para configurar um problema como um todo. Sendo assim, pode-se considerar o Help

Desk um sistema que poderá ter uma boa aceitação no mercado. Para isso, será imprescindível que

os responsáveis pela base de conhecimento realizem um trabalho sério e detalhado no

cadastramento da base de casos, já que o sistema possui uma base interativa e dinâmica que

necessita de constantes atualizações.

De um modo geral, a utilização da técnica de Raciocínio Baseado em casos se mostrou

muito eficiente diante dos objetivos propostos. Para que o sistema possa funcionar de uma forma

comercial e ser disponibilizado para campo, faz-se necessário uma população maior da base de

dados e uma análise mais aprofundada sobre a configuração de cada atributo, de modo que as

respostas sejam melhoradas e adaptadas as necessidades.

Como em todo projeto, durante a implementação do protótipo alguns problemas foram

encontrados, principalmente relativos às ferramentas utilizadas para a programação, como: a) o

depurador de erros para JSP não é claro, dificultando o entendimento em diversos momentos; b)

adaptação a tecnologias Web adotadas para o projeto, exigindo total domínio para utilização; c)

adaptação ao Java e a tecnologia orientada a objetos; d) implementação do protótipo seguindo o

padrão MVC, o que provocou um maior volume de tempo para a programação; e, e) problemas

relativos a instalação e configuração das ferramentas para plataformas diferentes. Todos os

problemas relativos a utilização das ferramentas foram resolvidos através das pesquisas na internet,

principalmente em fóruns.

Page 84: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

74

A utilização do padrão MVC para o desenvolvimento em um primeiro momento provocou

um maior volume de programação, mas também proporcionou uma melhor organização e uma

maior facilidade na hora de realizar a manutenção do sistema. A utilização deste padrão de

desenvolvimento contribuiu muito para uma melhor formação no aspecto profissional aumentando

os conhecimentos e aprimorando as habilidades.

Outra técnica utilizada foi a do AJAX para a busca de informações e atualização de campos

em algumas telas. Esta técnica permitiu que o desgaste na busca destas informações fosse

minimizado sem precisar sair da tela para efetuar consultas e atualizações.

Este sistema não possui distinção entre textos com caixa alta ou caixa baixa, deixando a

cargo do técnico que populou a base de dados a responsabilidade sobre a formatação correta para

apresentação dos textos.

Para trabalhos futuros propõe-se o estudo e implementação de novos métodos de

recuperação o que pode proporcionar um melhor resultado final nas consultas, ou ainda adicionar

um campo descritivo onde o cliente possa também colocar uma descrição do problema enfrentado,

para que o sistema interprete este campo realizando a avaliação através de palavras chaves pré-

estabelecidas.

Outra sugestão para trabalhos futuros seria a implementação do sistema utilizando outra

técnica de Inteligência Artificial, como Agentes ou Linguagem Natural para que se possa observar o

comportamento do sistema também nestas técnicas.

Page 85: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

REFERÊNCIAS BIBLIOGRÁFICAS

ADTMAG, Application Development Trends Computer Group. JavaServer Pages for Enterprise-Level Computing. Disponível em: < http://www.adtmag.com/java/articleold.aspx?id=1245>. Acesso em: 01 mai. 2006.

AKADIA, Akadia AG Information Technology. Web Database Access with Apache / Tomcat. Disponível em: < http://www.akadia.com/download/soug/tomcat/html/tomcat_apache.html >. Acesso em: 05 mai. 2006.

BARRETO, Jorge Muniz. Inteligência Artificial: no limiar do século XXI. Florianópolis: PPP, 1997.

CONSOLE. Java uma linguagem multiplataforma. Disponível em: < http://hd.com.br/ver_documento.htm?id=154>. Acesso em: 10 jun. 2005.

DUMOND, Gabriela F.; PAULA, Valéria C. Avaliação Técnica do Mysql Prodemge. Disponível < http://www.rau-tu.unicamp.br/nou-rau/softwarelivre/document/?view=1 > Acesso em: 10 jun. 2005.

FERNANDES, A. M. R. Inteligência Artificial: noções gerais. 1. ed. Florianópolis: Visual Books, 2003.

HOMER. Help Desk Systems. Disponível em: < www.cse.lehigh.edu/~munoz/cse395/classes /Help Desk.ppt >. Acesso em: 13 mar. 2005.

INFOWESTER. J2SE, J2EE e J2ME: uma breve explicação. Disponível em: < http://www.infowester.com/versoesjava.php>. Acesso em: 30 jul. 2005.

JAVANOROESTE. Grupo de Usuários Java do Noroeste Paulista: Introdução a Aplicações Web com Java. Disponível em: < www.javanoroeste.com.br/2006/cursointroweb/JavaWeb.pdf>. Acesso em: 13 mar. 2006.

J2EEBRASIL, o site da comunidade J2EE no Brasil: Servlets. Disponível em: < http://www.j2eebrasil.com.br/jsp/tutoriais/tutorial.jsp?idTutorial=001_013 >. Acesso em: 12 set. 2005.

KEYSTONE, Computer Group. Help Desk Services: Help Desk. Disponível em: <http://keystonegroup.co.uk>. Acesso em: 13 mar. 2005.

KOLODNER, Janet. Case-based reasoning. San Franciso: Morgan Kauffman, 1993.

KUHNEN, R. R. i-hotel: sistema de indicação de hospedagem utilizando a técnica de raciocínio baseado em casos. 2000. 115 f. Trabalho de Conclusão do Curso (Bacharelado em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2000.

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-

Page 86: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

76

Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis, 1998.

LINUXMAGAZINE.Linux Magazine – Tecnologia sem limites: Ambientes de desenvolvimento e ferramentas para construção e migração de aplicações. Disponível em: < http://www.linuxmagazine.com.br/issue/12/LM12_61-66.pdf >. Acesso em: 14 mar. 2006.

LUCASARTS. Yoda's Help Desk: support. Disponível em: <http://yodasHelp Desk. lucasarts.com>. Acesso em: 11 out. 2004.

MIRANDA, E. M. Protótipo de um Sistema de Auxílio à Avaliação de Algoritmos. 2000. 153 f. Trabalho de Conclusão do Curso (Bacharelado em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2000.

MYSQL. Manual de Referência do MySQL 4.1: Visão Geral do Sistema de Banco de Dados MySQL. Disponível em: < http://dev.mysql.com/doc/refman/4.1/pt/features.html>. Acesso em: 14 mar. 2006.

MÜLLER, D. N. Inteligência Artificial. Disponível em: <http://www.ulbra.tche.br/~danielnm/ia/defbas/de.html>. Acesso em: 05 jun. 2005.

NASCIMENTO JR., C. L.; YONEYAMA, T. Inteligência Artificial em controle e automação. 1. ed. São Paulo: E. Blücher, 2000. 218 p.

PORTALJAVA: a maior comunidade Java do Brasil. Disponível em: < http://www.portaljava.com.br>. Acesso em: 01 jul. 2005.

PORTALWEBMOBILE: WebMobile Magazine. Disponível em: < http://www.portalwebmobile.com.br/ >. Acesso em: 15 mai. 2006.

RABUSKE, Renato Antônio. Inteligência Artificial. Florianópolis: UFSC, 1995.

RAMALHO, Benício José Almeida, Sapiens: sistema de apoio ao ensino de graduação baseado na Internet. 1999. 91 f. Dissertação (Mestrado)–Programa de Pós-Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis: 1999.

SAOFRANCISCO.Universidade São Francisco: Introdução ao Java. Disponível em: < http://www.sin002ufsc.hpg.ig.com.br/apostilas/java_joao.zip >. Acesso em: 10 mar. 2006.

SILVA, A. O. DUNAS: protótipo de um sistema inteligente para avaliação da vulnerabilidade e gerenciamento dos sistemas de dunas costeiras. 2000. 86 f.Trabalho de Conclusão do Curso (Bacharelado em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2000.

SILVA, Deam James Azevedo; COSTA, Fábio Paraguaçu Duarte. Sistema de Raciocínio Baseado em Casos para o diagnóstico médico de doenças neurológicas. In: WORKSHOP DE INFORMÁTICA APLICADA A SAÚDE, 2., 2002, Itajaí. Anais do Congresso Brasileiro de Computação. Itajaí: UNIVALI, 2002. Disponível em: <http://www.cbcomp.univali.br/anais/pdf/2002/wsp038.pdf >. Acesso em: 20 mar. 2005.

Page 87: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

77

THOMSON Laura; WELLING Luke. PHP e MySQL – Desenvolvimento Web. Rio de Janeiro:

Editora Campus, 2001.

TOMCAT. Tutorial Tomcat: Instalação e Configuração. Disponível em: < http://www.mhavila.com.br/topicos/java/tomcat.html>. Acesso em: 15 set. 2005.

UNICAP. Novas tecnologias web: JSP. Disponível em: < http://adao.dei.unicap.br/~almir/seminarios/2001.1/2mno/tecnologiasweb/jsp.htm>. Acesso em: 30 jul. 2005.

UNITO. Unito Sistemas: tecnologia. Disponível em: < www.unito.com.br/materia/view/131?languageCode=en>. Acesso em: 10 jun. 2005.

WANGENHEIM A. von; WANGENHEIM, C. G. von. Raciocínio Baseado em Casos. Baruerí: Manole, 2003.

WEBSPHERE. WebSphere software: Centro de Informações. Disponível em: < http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rweb_webxf.html>. Acesso em: 25 out. 2005.

Page 88: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

A MODELAGEM DO SISTEMA

A.1 DIAGRAMAS DE CASOS DE USO

Descrição dos Cenários dos Use Cases do Administrador

UC 01 – Configura Usuário

Cadastra Novo Usuário {Fluxo Principal}.

1. Se Administrador logado no sistema.

2. O Sistema apresenta o menu para o usuário.

3. O Administrador escolhe a opção cadastro de usuário.

4. O Administrador informa os dados do novo usuário.

5. O Sistema insere um novo usuário.

Altera Usuário {Fluxo Alternativo}.

1. Se Administrador logado no sistema.

2. O Administrador escolhe a opção alterar usuário.

3. O Sistema busca os usuários cadastrados e mostra na tela.

4. O Administrador seleciona o usuário, e altera suas informações.

5. O Administrador confirma a alteração.

6. O Sistema salva alterações do usuário selecionado.

Exclui Usuário {Fluxo Alternativo}.

1. Se Administrador logado no sistema.

2. O Administrador escolhe a opção excluir usuário.

3. O Sistema busca os usuários cadastrados e exibe na tela.

4. O Administrador seleciona o usuário.

5. O Administrador confirma a exclusão.

6. O Sistema exclui o usuário selecionado.

UC 02 – Consulta Casos

Consulta Casos {Fluxo Principal}.

Page 89: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

79

1. Se Administrador logado no sistema.

2. O Administrador escolhe a opção consulta casos.

3. O Sistema busca os casos e apresenta na tela.

4. O Administrador seleciona o caso que deseja consultar.

UC 03 – Aprova Casos

Aprova Caso Pendente {Fluxo Alternativo}.

1. Se na etapa 4, do UC 02, o status do caso for não resolvido.

2. O Administrador pode escolher entre alterar, excluir ou aprovar o caso pendente.

UC 04 – Cadastra Casos

Cadastra Caso {Fluxo Principal}.

1. Se Administrador logado no sistema.

2. O Administrador seleciona a opção cadastro de casos.

3. O Sistema exibe a tela de cadastro de casos.

4. O Administrador configura o novo caso.

5. O Administrador confirma a inclusão do caso.

6. O Sistema insere o novo caso.

Altera Caso {Fluxo Alternativo}.

1. Se Administrador logado no sistema.

2. O Administrador seleciona a opção cadastro de casos.

3. O Sistema exibe uma lista com os casos.

4. O Administrador seleciona um caso na lista.

5. O Administrador altera as informações do caso.

6. O Administrador confirma a alteração do caso.

7. O Sistema altera o caso selecionado.

Exclui Caso {Fluxo Alternativo}.

1. Se Administrador logado no sistema.

2. O Administrador seleciona a opção cadastro de casos.

3. O Sistema exibe uma lista com os casos.

Page 90: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

80

4. O Administrador seleciona um caso na lista.

5. O Administrador confirma a exclusão do caso.

6. O Sistema exclui o caso selecionado.

UC 5 – Cadastra Produtos

Cadastra Novo Produto {Fluxo Principal}.

1. Se Administrador logado no sistema.

2. O Administrador escolhe a opção do menu lista de produtos.

3. O Sistema apresenta uma lista com os produtos cadastrados.

4. O Administrador escolhe a opção cadastrar de produto.

5. O Administrador informa os dados do novo produto.

6. O Administrador confirma a inserção.

7. O Sistema insere um novo produto.

Altera Produtos {Fluxo Alternativo}.

1. Se no passo 3 do fluxo principal, o produto desejado não estiver de acordo.

2. O Administrador seleciona a opção alterar de um produto em da lista.

3. O Administrador altera as informações do produto.

4. O Administrador confirma alteração.

5. O Sistema salva alterações.

Exclui Produto {Fluxo Alternativo}.

1. Se no passo 3 do fluxo principal, o produto desejado não estiver de acordo.

2. O Administrador escolhe o produto na lista e clica sobre o botão excluir.

3. O Administrador confirma a exclusão.

4. O Sistema exclui o produto escolhido.

Cadastra Estrutura do Produto {Fluxo Alternativo}.

1. Se na opção 3 do fluxo principal o Administrador desejar definir a estrutura de um

produto.

2. O Administrador escolhe a opção “Estrut.” De um produto da lista de produtos.

Page 91: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

81

3. O Sistema apresenta a tela para definição da estrutura.

4. O Administrador cadastra os dados da estrutura do produto.

UC 06 – Cadastra Conjuntos

Cadastra Novos Conjuntos {Fluxo Principal}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o conjunto

desejado não estiver listado.

2. O Administrador pode clicar sobre o botão “Cadastro de Conjuntos” ao para abrir a tela

de cadastro.

3. O Sistema abre a tela de cadastro.

4. O Administrador insere a descrição do conjunto.

5 . O Administrador confirma a inclusão.

6. O Sistema insere um novo conjunto.

Altera Conjunto {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o conjunto

desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Altera Conjunto” ao lado do conjunto

desejado, para abrir a tela de alteração.

3. O Sistema abre a tela de alteração.

4. O Administrador insere a nova descrição do conjunto.

5 . O Administrador confirma a operação.

6. O Sistema altera as informações do conjunto.

Exclui Conjunto {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o conjunto

desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Excluir Conjunto”.

3. O Administrador confirma a exclusão.

4. O Sistema exclui o conjunto selecionado.

Page 92: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

82

UC 07 – Cadastra Problemas

Cadastra Novos Problemas {Fluxo Principal}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o problema

desejado não estiver listado.

2. O Administrador pode clicar sobre o botão “Cadastro de problemas”, dentro da área do

conjunto desejado, para abrir a tela de cadastro.

3. O Sistema abre a tela de cadastro.

4. O Administrador insere a descrição do problema.

5 . O Administrador confirma a inclusão.

6. O Sistema insere um novo problema.

Altera Conjunto {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o conjunto

desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Altera Problema” ao lado problema desejado

para abrir a tela de alteração.

3. O Sistema abre a tela de alteração.

4. O Administrador insere as novas informações do problema.

5 . O Administrador confirma a operação.

6. O Sistema altera as informações do problema.

Exclui Conjunto {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o problema

desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Excluir Problema” ao lado problema

desejado.

3. O Administrador confirma a exclusão.

4. O Sistema exclui o problema selecionado.

UC 08 – Cadastra Estados

Cadastra Novos Estados {Fluxo Principal}.

Page 93: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

83

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o estado desejado

não estiver listado.

2. O Administrador pode clicar sobre o botão “Cadastro de Estados”, dentro da área do

problema desejado, para abrir a tela de cadastro.

3. O Sistema abre a tela de cadastro.

4. O Administrador insere as informações do estado.

5 . O Administrador confirma a inclusão.

6. O Sistema insere um novo estado para o problema.

Altera Estado {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o estado desejado

não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Altera Estado”, ao lodo do estado desejado,

para abrir a tela de alteração.

3. O Sistema abre a tela de alteração.

4. O Administrador insere as novas informações do estado.

6 . O Administrador confirma a operação.

7. O Sistema altera as informações do estado.

Exclui Estado {Fluxo Alternativo}.

1. Se no passo 3 do fluxo “Cadastra Estrutura do Produto” do Use Case 6, o estado desejado

não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Excluir Estado” ao lodo do estado desejado.

3. O Administrador confirma a exclusão.

4. O Sistema exclui o conjunto selecionado.

UC 09 – Consulta Atendimentos

Consulta Atendimentos {Fluxo Principal}.

1. Se Administrador logado no sistema.

2. O Administrador escolhe a opção relatório de atendimentos.

3. O Sistema exibe a tela de definição de consulta.

4. O Administrador define a consulta desejada.

Page 94: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

84

5. O Administrador escolhe o modelo de retorno (relatório ou gráfico).

6. O Sistema apresenta o resultado na tela.

UC 10 – Cadastra Grupo Produtos

Cadastra Grupo {Fluxo Principal}.

1. Se Administrador logado no sistema.

2. O Administrador pode clicar na opção do menu “Cadastro de Grupos de Produtos”

3. O Sistema apresenta um alista com os grupos cadastrados.

4. O Administrador escolhe clica sobre o botão “Incluir Grupo”

5. O Sistema apresenta tela de cadastro de grupos.

6. O Administrador informa os dados do novo grupo.

7. O Administrador confirma a inserção.

6. O Sistema insere um novo grupo.

Altera Grupo {Fluxo Alternativo}.

1. Se no passo 5 do fluxo principal, o grupo de produtos desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Altera Grupo”, ao lado do grupo desejado.

3. O Sistema apresenta a tela para alteração do grupo.

4. O Administrador altera as informações.

5. O Administrador confirma a alteração.

6. O Sistema salva alterações.

Exclui Grupo {Fluxo Alternativo}.

1. Se no passo 5 do fluxo principal o grupo de produtos desejado não estiver de acordo.

2. O Administrador pode clicar sobre o botão “Excluir Produto” ao lodo do grupo desejado.

3. O Administrador confirma a exclusão.

4. O Sistema exclui o grupo escolhido.

UC 11 – Consulta Caso

Consulta Caso {Fluxo Principal}.

Page 95: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

85

1. O Sistema exibe tela principal.

2. O Usuário informa seu nome e e-mail para prosseguir.

3. O Sistema busca os grupo de produtos e mostra na tela.

4. O Usuário seleciona o grupo de produtos desejado.

5. O Sistema busca os produtos do grupo de produtos selecionado.

6. O Usuário seleciona o produto desejado em uma lista.

7. O Usuário escolhe a opção prosseguir.

8. O Sistema busca a estrutura que um caso para o produto selecionado pode possuir de

acordo com o cadastro de estruturas onde estão cadastrados os conjuntos, os problemas de

cada conjunto e os estados que cada problema pode apresentar e apresenta na tela.

9. O Usuário configura o seu problema da maneira que mais se assemelhe ao problema que

quer solucionar, selecionando as opções na tela.

10. O Usuário seleciona a opção consultar.

11. O Sistema busca os casos mais semelhantes na base de casos e as soluções aplicadas em

tempos passados.

12. Se um dos casos for igual, ou muito semelhante ao problema que o usuário deseja

resolver, o usuário seleciona o caso.

13. O Usuário avalia e adquire conhecimento com o novo caso.

Envia Caso {Fluxo Alternativo}.

1. Se no fluxo principal, no passo 13 do cenário principal, nenhum caso solucionar o

problema apresentado.

2. O Usuário cadastra as informações do problema nos campos na parte inferior da tela.

3. O Usuário confirma o envio de um novo caso.

4. O Sistema envia o caso para avaliação da Assistência Técnica da empresa.

5. Após a configuração do caso, o sistema cadastra um novo atendimento.

A.2 DIAGRAMAS DE SEQUENCIA

Os diagramas de seqüência a seguir exibem uma visão geral sobre a iteração e a troca de

mensagens ocorridas durante uma determinada situação.

Page 96: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

86

A Figura 34 mostra o diagrama de seqüência da consulta de casos.

sd DS 01 - ConsultaCasoEA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

Cliente

Interface Sistema

«Banco»

Banco de Dados

Obs.: A estrutura do produto é formada pelos conjuntos que o produto possui cadastrado, os problemas de cada conjunto, e os estados de cada problema.

GrupoProdutos:= BuscaGruposShowPrincipal(void)

CadastraNomeEmail(Nome,Email)

SelecionaGrupo(void)

SolicitaProdutos(Cd_Grupo)

Produtos:= BuscaProdutos(Cd_Grupo)ExibeProdutos(Produtos)

SelecionaProduto(void)

SelecionaOpcaoProsseguir(void)

Solici taEstruturaProduto(CD_Produto)

EstruturaProduto:= BuscaEstruturaProduto(CD_Produto)

ExibeEstruturaProduto(EstruturaProduto)

SelecionaOpcoesCaso(void)

SolicitaPossiveisCasos(CD_Grupo,CD_Produto,CD_Problema,Causas,Estados)

Possiveicasos:= BuscaCasos(CD_Grupo,CD_Produto, CD_Problema, Causas, Estados)

CasosSimilares:= CauculaSimilaridade(PossiveisCasos)

ExibeCasosSimilares(CasosSimilares)

[AceitaCaso]: AceitaCaso(CD_Caso)

AvaliaNovoCaso(CD_Caso)AprendeNovoCaso(CD_Caso)

GravaAtendimento(InfAtendimento)[RejeitaCaso]: RejeitaCaso(void)

SolicitaTelaCadastro(void)

ExibeCadastroCaso

CadastraCaso(void)EmviaCaso(InfCaso)

EnviaEmailCaso(InfCaso)

GravaAtendimento(InfAtendimento)

ExibeTelaFinal(void)

Figura 34. Diagrama de Seqüência – Consulta Caso

Page 97: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

87

A Figura 35 mostra o diagrama de seqüência de manutenção de usuários.

Figura 35. Diagrama de Seqüência – Manutenção de Usuários

Page 98: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

88

A Figura 36 mostra o diagrama de seqüência de manutenção de casos.

Figura 36. Diagrama de Seqüência – Manutenção de Casos

Page 99: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

89

A.3 DIAGRAMAS ENTIDADE RELACIONAMENTO

Os diagramas de Entidade Relacionamento a seguir exibem a estrutura geral lógica e física,

planejada para o sistema proposto.

Modelo Lógico

A Figura 37 mostra o modelo lógico do sistema.

Figura 37. Modelo Lógico

Page 100: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

90

Modelo Físico

A Figura 38 mostra o modelo físico do sistema.

Figura 38. Modelo Físico

Page 101: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

91

A.4 DESCRIÇÃO DAS TABELAS DE DADOS

Tabela 5. Descrição das Tabelas de Dados utilizadas no Sistema.

NOME DA TABELA DESCRIÇÃO

Grupo Tabela armazena os grupos dos produtos.

Produto Tabela que armazena as informações dos produtos.

Conjunto Tabela que armazena os conjuntos.

Problema Tabela que armazena os problemas dos conjuntos.

Estado Tabela que armazena os estados dos problemas

Usuário Tabela que armazena as informações de cada usuário

Prod_Conjunto Tabela que armazena o relacionamento de um produto com um conjunto

Conj_Problema Tabela que armazena o relacionamento entre produtos, conjuntos e os problemas. Também é onde serão cadastrados os pesos de cada problema

Prob_Estado Tabela que armazena o relacionamento entre produtos, conjuntos, problemas e as estados dos problemas.

Caso Tabela que armazena os casos envolvendo os caso, os produtos, e os grupo que fazem parte dos casos, o diagnóstico apurado a solução aplicada e o status do caso.

Caso_Problema Tabela que armazena o relacionamento entre os casos e os conjuntos, problemas e estados dos problemas.

Atendimentos Tabela que armazena o histórico de atendimentos

A.5 DESCRIÇÃO DOS ATRIBUTOS DAS TABELAS

Tabela 6. Dicionário de Dados da Tabela Caso.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Caso INTEIRO Código do Caso – Chave primária CD_Grupo INTEIRO Código do grupo de produtos – Chave primária CD_Produto VARCHAR(10) Código do Produto – Chave primária Diagnostico VARCHAR(200) Definição do problema encontrado Solucao VARCHAR(200) Solução aplicada para o problema ocorrido Resolvido VARCHAR(1) Status do caso (R=Resolvido, P=Pendente)

Page 102: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

92

Tabela 7. Dicionário de Dados da Tabela Caso_Problema.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Caso INTEIRO Código do Caso – Chave primária CD_Grupo INTEIRO Código do grupo de produtos – Chave primária CD_Produto VARCHAR(10) Código do Produto – Chave primária CD_Conjunto INTEIRO Código do conjunto – Chave primária CD_Problema INTEIRO Código do problema – Chave primária CD_Estado INTEIRO Código do estado – Chave primária

Tabela 8. Dicionário de Dados da Tabela Atendimentos.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Atendimento INTEIRO Código do atendimento – Chave primária CD_Caso INTEIRO Código do caso a que o atendimento refere-se –

Chave primária Cliente VARCHAR(50) Descrição do nome do cliente Data DATE Data da consulta do caso Hora VARCHAR(5) Hora da consulta do caso

Tabela 9. Dicionário de Dados da Tabela Problema.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Problema INTEIRO Código do Problema – Chave primária DS_Problema VARCHAR(20) Descrição do Problema

Tabela 10. Dicionário de Dados da Tabela Estado.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Estado INTEIRO Código do estado – Chave primária DS_Estado VARCHAR(20) Descrição do estado

Tabela 11. Dicionário de Dados da Tabela Grupo.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Grupo INTEIRO Código do Grupo de Produtos – Chave primária DS_Grupo VARCHAR(20) Descrição do Grupo de Produtos

Tabela 12. Dicionário de Dados da Tabela Conjunto.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Conjunto INTEIRO Código do Conjunto – Chave primária DS_Conjunto VARCHAR(30) Descrição do Conjunto

Page 103: Área de Inteligência Artificial por José Vanderlei de ...siaibib01.univali.br/pdf/Jose Vanderlei de Menezes.pdf · Desk hoje é a de facilitador de “quaisquer informações”

93

Tabela 13. Dicionário de Dados da Tabela Prod_Conjunto.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Grupo INTEIRO Código do Grupo de Produtos – Chave primária CD_Produto VARCHAR(10) Código do Produto – Chave primária CD_Conjunto INTEIRO Código do Conjunto – Chave primária

Tabela 14. Dicionário de Dados da Tabela Conj_Problema.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Grupo INTEIRO Código do Grupo de Produtos – Chave primária CD_Produto INTEIRO Código do Produto – Chave primária CD_Conjunto INTEIRO Código do Conjunto – Chave primária CD_Problema INTEIRO Código da Problema – Chave primária Peso INTEIRO Peso configurado para o problema

Tabela 15. Dicionário de Dados da Tabela Produto.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Produto VARCHAR(50) Código do Produto – Chave primária CD_Grupo INTEIRO Código do Grupo de Produtos – Chave primária DS_Produto VARCHAR(50) Descrição do Produto

Tabela 16. Dicionário de Dados da Tabela Usuário.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_User INTEIRO Código do Usuário – Chave primária Nome_User VARCHAR(50) Nome do Usuário Email VARCHAR(50) Email do usuário Senha VARCHAR(6) Senha do usuário Tipo VARCHAR(1) Tipo de usuário (T=Técnico, A=Administrador)

Tabela 17. Dicionário de Dados da Tabela Prob_Estado.

NOME DO ATRIBUTO TIPO/TAMANHO DESCRIÇÃO CD_Grupo INTEIRO Código do Grupo de Produtos – Chave primária CD_Produto INTEIRO Código do Produto – Chave primária CD_Conjunto INTEIRO Código do Conjunto – Chave primária CD_Problema INTEIRO Código do Problema – Chave primária CD_Estado INTEIRO Código do Estado – Chave primária