UNIVERSIDADE DO SUL DE SANTA CATARINA
JANDERSON COSTA
SISTEMA DE HELP DESK
UTILIZANDO RACIOCÍNIO BASEADO EM CASOS
Palhoça
2011
JANDERSON COSTA
SISTEMA DE HELP DESK
UTILIZANDO RACIOCÍNIO BASEADO EM CASOS
Trabalho de Conclusão de Curso apresentado ao Curso
de Graduação em Sistemas de Informação da
Universidade do Sul de Santa Catarina, como requisito
parcial à obtenção do título de Bacharel em Sistemas de
Informação.
Orientador: Prof. Saulo Popov Zambiasi, Msc.
Palhoça
2011
JANDERSON COSTA
SISTEMA DE HELP DESK
UTILIZANDO RACIOCÍNIO BASEADO EM CASOS
Este Trabalho de Conclusão de Curso foi julgado
adequado à obtenção do título de Bacharel em Sistemas
de Informação e aprovado em sua forma final pelo
Curso de Sistemas de Informação, da Universidade do
Sul de Santa Catarina.
Palhoça, 21 de novembro de 2011.
_____________________________________
Prof. e orientador Saulo Popov Zambiasi, Msc.
Universidade do Sul de Santa Catarina - UNISUL
_____________________________________
Prof. Theo Augustus Luz, Esp.
Universidade do Sul de Santa Catarina - UNISUL
_____________________________________
Prof. Jean Carlo Rossa Hauck, Dr.
Universidade do Sul de Santa Catarina - UNISUL
À minha mãe Elizete, a responsável pela
minha formação e que sempre esteve presente
nos momentos decisivos de minha vida.
AGRADECIMENTOS
Ao meu orientador Saulo Popov Zambiasi, por me guiar no caminho das pedras.
A todos os professores do Curso de Sistemas de Informação da Universidade do
Sul de Santa Catarina.
RESUMO
A rápida popularização do computador e das tecnologias da informação ocorridas nas últimas
décadas possibilitou às empresas a chance de se tornarem mais competitivas no mercado.
Com a busca pela implantação de novos recursos computacionais, que tornassem seus
processos mais produtivos, surge também a necessidade de manter tais recursos sob as
condições de uso esperadas. As empresas passam então a incorporar centrais de atendimento a
usuários em resposta ao crescente volume de incidentes e para isso utilizam softwares para
gestão de incidentes conhecidos também como sistemas de help desk. Neste sentido, este
trabalho apresenta uma solução que estende as funcionalidades básicas de um sistema de help
desk, implementando um recurso para autoatendimento, construído com base na tecnologia de
Raciocínio Baseado em Casos (RBC), visando com isso beneficiar o serviço de atendimento
das organizações. Modelado sob os princípios de RBC Textual, o protótipo desenvolvido
provê um motor de busca implementado em conformidade com o modelo de Recuperação de
Informação Vetorial, sendo capaz de retornar casos similares (problema/solução) a um
problema de entrada expresso em linguagem natural. Os casos são recuperados a partir de
uma base de conhecimento constituída por FAQs do domínio de informática. Submetido a
testes por usuários e avaliações, o sistema proposto têm sua eficiência comprovada também
por pesquisa realizada e com resultados apresentados.
Palavras-chave: Help Desk. FAQ. Recuperação de Informação. Raciocínio Baseado em
Casos. Sistema Especialista.
LISTA DE ILUSTRAÇÕES
Figura 1 - Engenharia do Conhecimento ..................................................................................... 28
Figura 2 - Componentes dos Sistemas Especialistas .................................................................. 30
Figura 3 - Exemplo simplificado de caso .................................................................................... 37
Figura 4 - Ciclo do Raciocínio Baseado em Casos ..................................................................... 38
Figura 5 - Recuperação de casos .................................................................................................. 40
Figura 6 - Fluxograma: Revisão do caso recuperado .................................................................. 43
Figura 7 - Fluxograma: Proposta da solução ............................................................................... 62
Figura 8 - Atores ........................................................................................................................... 70
Figura 9 - Diagrama de Casos de Uso (Solicitante) .................................................................... 73
Figura 10 - Diagrama de Casos de Uso (Suporte)....................................................................... 74
Figura 11 - Diagrama de Casos de Uso (Analista RBC) ............................................................ 75
Figura 12 - Diagrama de Casos de Uso (Administrador) ........................................................... 76
Figura 13 - Modelo conceitual da estrutura de classes do sistema ............................................ 78
Figura 14 - Diagrama de classes................................................................................................... 81
Figura 15 - Diagrama Entidade-Relacionamento ........................................................................ 83
Figura 16 - Tecnologias e ferramentas utilizadas........................................................................ 86
Figura 17 - Cadastro de conta de acesso ...................................................................................... 93
Figura 18 - Autoatendimento........................................................................................................ 94
Figura 19 - Resposta do caso similar ........................................................................................... 95
Figura 20 - Postar dúvida .............................................................................................................. 96
Figura 21 - Formulário para envio de dúvidas ............................................................................ 96
Figura 22 - Lista de questões ........................................................................................................ 97
Figura 23 - Formulário de edição de questões............................................................................. 98
Figura 24 - Salvando uma questão como FAQ ........................................................................... 99
Figura 25 - Retenção de caso...................................................................................................... 100
Figura 26 - Central de chamados................................................................................................ 101
Figura 27 - Formulário de edição de chamados ........................................................................ 102
Figura 28 - Histórico de interações do chamado ....................................................................... 103
Figura 29 - Lista de perguntas frequentes.................................................................................. 104
Figura 30 - Pesquisa avançada de chamados ............................................................................. 105
Figura 31 - Central de usuários .................................................................................................. 106
Figura 32 - Tela inicial da base de conhecimento ..................................................................... 107
Figura 33 - FAQ (Base de Conhecimento) ................................................................................ 108
Figura 34 - Formulário de edição de FAQs ............................................................................... 109
Figura 35 - Lista de questões (Base de Conhecimento)............................................................ 110
Figura 36 - Dicionário de sinônimos.......................................................................................... 111
Figura 37 - Lista de termos ignorados ....................................................................................... 112
Figura 38 - Campos globais ........................................................................................................ 113
Figura 39 - Teste de recuperação de casos similares ................................................................ 114
Figura 40 - Casos similares recuperados ................................................................................... 115
Figura 41 - Relatório para análise de casos similares ............................................................... 116
LISTA DE GRÁFICOS
Gráfico 1 - Resultado da pesquisa para a pergunta 1 do questionário ..................................... 121
Gráfico 2 - Resultado da pesquisa para a pergunta 2 do questionário ..................................... 121
Gráfico 3 - Resultado da pesquisa para a pergunta 3 do questionário ..................................... 122
Gráfico 4 - Resultado da pesquisa para a pergunta 4 do questionário ..................................... 123
Gráfico 5 - Resultado da pesquisa para a pergunta 5 do questionário ..................................... 123
Gráfico 6 - Resultado da pesquisa para a pergunta 6 do questionário ..................................... 124
Gráfico 7 - Análise dos resultados para as perguntas 1, 2, 3, 5 e 6 do questionário ............... 126
Gráfico 8 - Análise dos resultados para a pergunta 4 do questionário..................................... 126
LISTA DE TABELAS
Tabela 1 - Pesos dos termos da consulta...................................................................................... 53
Tabela 2 - Pesos dos termos dos documentos ............................................................................. 54
Tabela 3 - Relatório para análise de casos similares ................................................................. 117
LISTA DE QUADROS
Quadro 1 - Sistemas Convencionais x Sistemas Baseados em Conhecimento ......................... 34
Quadro 2 - Mapa das técnicas de RBC utilizadas ....................................................................... 57
Quadro 3 - Requisitos Funcionais ................................................................................................ 66
Quadro 4 - Requisitos Não Funcionais ........................................................................................ 67
Quadro 5 - Regras de Negócio ..................................................................................................... 68
Quadro 6 - Casos de Uso .............................................................................................................. 72
Quadro 7 - Perguntas do questionário da pesquisa ................................................................... 120
Quadro 8 - Lista de FAQs ........................................................................................................... 134
Quadro 9 - Requisitos Funcionais – Descrição ......................................................................... 144
Quadro 10 - Requisitos Não Funcionais – Descrição ............................................................... 145
Quadro 11 - Regras de Negócio – Descrição ............................................................................ 147
Quadro 12 - Casos de Uso – Descrição ..................................................................................... 149
LISTA DE SIGLAS
API - Application Programming Interface
ASP - Active Server Pages
BC - Base de Conhecimento
CI - Centro de Informação
CLR - Common Language Runtime
CTS - Common Type System
CU - Caso de Uso
DAL - Data Access Layer
DER - Diagrama Entidade-Relacionamento
FAQ - Frequently Asked Questions
HTML - HyperText Markup Language
HTTP - HyperText Transfer Protocol
IA - Inteligência Artificial
IDE - Integrated Development Environment
IIS - Internet Information Services
LAN - Local Area Network
MD - Modelo de Dados
OMG - Object Managment Group
POO - Programação Orientada a Objetos
RBC - Raciocínio Baseado em Casos
RF - Requisito Funcional
RI - Recuperação de Informação
RN - Regra de Negócio
RN - Regra de Negócio
SBC - Sistema Baseado em Conhecimento
SE - Sistema Especialista
SOAP - Simple Object Access Protocol
SPOC - Single Point of Contact
SQL - Structured Query Language
TI - Tecnologia da Informação
TIC - Tecnologia da Informação e Comunicação
UML - Unified Modeling Language
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................................... 17
1.1 PROBLEMA ........................................................................................................................ 19
1.2 OBJETIVOS ......................................................................................................................... 20
2.2.1 Objetivo Geral.................................................................................................................. 20
2.2.2 Objetivos Específicos ...................................................................................................... 21
1.3 JUSTIFICATIVA ................................................................................................................. 21
1.4 ESTRUTURA DA MONOGRAFIA .................................................................................. 22
2 REVISÃO BIBLIOGRÁFICA ............................................................................................ 23
2.1 HELP DESK ......................................................................................................................... 23
2.1.1 Autoatendimento ............................................................................................................. 24
2.1.2 Importância da Base de Conhecimento ....................................................................... 25
2.1.3 O Software de Help Desk ............................................................................................... 26
2.2 SISTEMAS ESPECIALISTAS ........................................................................................... 27
2.2.1 Introdução ........................................................................................................................ 27
2.2.2 Componentes dos Sistemas Especialistas ..................................................................... 29
2.2.3 Arquitetura dos Sistemas Especialistas ....................................................................... 30
2.2.3.1 A Base de Conhecimento ............................................................................................... 30
2.2.3.2 O Motor de Inferência .................................................................................................... 32
2.2.3.3 A Interface com o Usuário ............................................................................................. 32
2.2.4 Sistemas Convencionais X Sistemas Baseados em Conhecimento ........................... 33
2.3 RACIOCÍNIO BASEADO EM CASOS ............................................................................ 34
2.3.1 Representação do Conhecimento .................................................................................. 36
2.3.2 Ciclo do RBC .................................................................................................................... 38
2.3.2.1 Recuperação .................................................................................................................... 39
2.3.2.2 Reutilização e Adaptação ............................................................................................... 40
2.3.2.2.1 Adaptação Nula ........................................................................................................... 41
2.3.2.3 Revisão ............................................................................................................................ 42
2.3.2.4 Retenção .......................................................................................................................... 43
2.3.3 Raciocínio Baseado em Casos Textual ......................................................................... 45
2.3.3.1 Recuperação em RBC Textual ....................................................................................... 47
2.3.3.2 Modelos de Recuperação de Informação ...................................................................... 49
2.3.3.2.1 Modelo Booleano ......................................................................................................... 49
2.3.3.2.2 Modelo Probabilístico ................................................................................................. 49
2.3.3.2.3 Modelo Vetorial ........................................................................................................... 50
2.3.4 Exemplos de Aplicações RBC ........................................................................................ 55
2.3.5 Mapa das Técnicas de RBC Utilizadas ........................................................................ 56
2.4 CONSIDERAÇÕES............................................................................................................. 57
3 MÉTODO ............................................................................................................................... 58
3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA ............................................................ 58
3.2 ETAPAS ............................................................................................................................... 59
3.3 PROPOSTA DA SOLUÇÃO .............................................................................................. 59
3.4 DELIMITAÇÕES DO PROJETO ...................................................................................... 63
3.4.1 Requisitos do Sistema ..................................................................................................... 63
3.4.2 Base de Conhecimento .................................................................................................... 63
4 MODELAGEM...................................................................................................................... 64
4.1 INTRODUÇÃO.................................................................................................................... 64
4.2 UML ...................................................................................................................................... 65
4.3 ESPECIFICAÇÃO DO SISTEMA ..................................................................................... 65
4.3.1 Requisitos Funcionais ..................................................................................................... 66
4.3.2 Requisitos Não Funcionais ............................................................................................. 67
4.3.3 Regras de Negócio ........................................................................................................... 68
4.3.4 Atores................................................................................................................................. 69
4.3.5 Casos de Uso ..................................................................................................................... 70
4.3.5.1 Diagrama de Casos de Uso do Solicitante..................................................................... 72
4.3.5.2 Diagrama de Casos de Uso do Suporte ......................................................................... 74
4.3.5.3 Diagrama de Casos de Uso do Analista RBC ............................................................... 75
4.3.5.4 Diagrama de Casos de Uso do Administrador .............................................................. 76
4.3.6 Diagrama de Classes ....................................................................................................... 76
4.3.7 Modelagem de Dados ...................................................................................................... 82
4.3.7.1 Diagrama Entidade-Relacionamento ............................................................................. 82
5 DESENVOLVIMENTO ....................................................................................................... 85
5.1 TECNOLOGIAS E FERRAMENTAS UTILIZADAS ..................................................... 85
5.1.1 .NET Framework............................................................................................................. 86
5.1.2 ASP.NET ........................................................................................................................... 87
5.1.3 C# ....................................................................................................................................... 87
5.1.4 IIS (Internet Information Services) .............................................................................. 88
5.1.5 SQL Server ....................................................................................................................... 88
5.1.6 SQL Server Management Studio Express ................................................................... 89
5.1.7 Visual Studio .................................................................................................................... 89
5.1.8 jQuery................................................................................................................................ 89
5.2 HISTÓRICO DO DESENVOLVIMENTO........................................................................ 90
5.3 APRESENTAÇÃO DO SISTEMA .................................................................................... 92
5.3.1 Primeiro Acesso ............................................................................................................... 92
5.3.2 Busca da Solução e Retenção de Novos Casos ............................................................ 93
5.3.2.1 Autoatendimento ............................................................................................................. 94
5.3.2.2 Resposta ........................................................................................................................... 95
5.3.2.3 Postar Dúvida .................................................................................................................. 95
5.3.2.4 Lista de Questões ............................................................................................................ 97
5.3.2.5 Retenção de Casos .......................................................................................................... 98
5.3.3 Central de Chamados ................................................................................................... 100
5.3.4 FAQ.................................................................................................................................. 103
5.3.5 Pesquisa Avançada ........................................................................................................ 104
5.3.6 Central de Usuários ....................................................................................................... 105
5.3.7 Base de Conhecimento .................................................................................................. 107
5.3.7.1 FAQ ............................................................................................................................... 108
5.3.7.2 Questões ........................................................................................................................ 109
5.3.7.3 Dicionário de Sinônimos .............................................................................................. 110
5.3.7.4 Lista de Termos Ignorados ........................................................................................... 111
5.3.8 Campos Globais ............................................................................................................. 112
5.4 AVALIAÇÃO .................................................................................................................... 113
5.4.1 Avaliação do Processo de Recuperação de Casos Similares ................................... 114
5.4.2 Avaliação Geral do Recurso de Autoatendimento ................................................... 118
5.4.2.1 Coleta de Dados ............................................................................................................ 118
5.4.2.2 Resultados da Pesquisa ................................................................................................. 120
6 CONCLUSÕES E TRABALHOS FUTUROS ................................................................ 128
REFERÊNCIAS ........................................................................................................................ 130
APÊNDICE A - LISTA DE PERGUNTAS FREQUENTES ............................................. 134
APÊNDICE B - REQUISITOS FUNCIONAIS .................................................................... 135
APÊNDICE C - REQUISITOS NÃO FUNCIONAIS ......................................................... 145
APÊNDICE D - REGRAS DE NEGÓCIO ........................................................................... 146
APÊNDICE E - CASOS DE USO ........................................................................................... 148
APÊNDICE F - CLASSES DO MOTOR DE BUSCA ........................................................ 150
APÊNDICE G - QUESTIONÁRIO DA PESQUISA ........................................................... 156
17
1
INTRODUÇÃO
Nas últimas décadas os contínuos avanços da tecnologia no que diz respeito ao
uso da informação, transformaram a vida das organizações e seus negócios. Fatores como
concorrência e qualidade, obrigaram as empresas a rapidamente se reestruturar tanto
estratégica quanto taticamente fazendo com que recorressem a novos conhecimentos,
procedimentos de trabalho, técnicas e ferramentas que pudessem lhes oferecer melhor relação
com seus clientes, fornecedores, redução de custos, produtividade e vantagem competitiva.
Segundo Turban, Rainer e Potter (2005), Tecnologia da Informação (TI) pode ser
entendida como um conjunto de recursos tecnológicos e computacionais para geração e uso
da informação em alinhamento às estratégias de negócio da empresa.
Fazendo uma leitura do passado, recursos físicos anteriormente utilizados como o
papel e a carta, deram lugar ao arquivo digital e o e-mail. O computador se tornou a principal
ferramenta de trabalho das pessoas trazendo velocidade de produção, organização e
comunicação.
A utilização das redes de área local ou LAN (Local Area Network) com servidores
e computadores interligados, possibilitou às organizações a capacidade de expandir-se,
incorporando mais estações de trabalho em suprimento a novas demandas com extrema
facilidade (FOROUZAN, 2008).
Por outro lado, ao mesmo tempo em que a introdução da TI traz vários benefícios
aos negócios, existe um alto custo de investimento tanto para implantá-la como para mantê-la
sob as condições de utilização esperadas. Tomando como exemplo uma empresa de médio
porte que possua em sua estrutura de TI um determinado conjunto de equipamentos e
hardwares como, por exemplo, servidores, componentes de rede, computadores, periféricos e
softwares a exemplo de sistemas operacionais, sistemas de informação e aplicativos diversos,
é comum que no dia-a-dia, estes componentes apresentem falhas e problemas de
funcionamento que geram incidentes (TURBAN; RAINER; POTTER, 2005).
Incidentes são ocorrências anormais que geram interrupções nas tarefas diárias
dos usuários (STATDLOBER, 2006). O setor de TI tem a responsabilidade prover
mecanismos que conduzam ao tratamento e solução das contingências no menor tempo hábil
minimizando o impacto sobre o negócio. Para dar vazão aos eventuais problemas ou questões
18
que possam surgir, é importante que a área de TI possua um serviço de apoio a usuários com
equipe de suporte ou Help Desk (STATDLOBER, 2006).
Segundo Statdlober (2006), Help Desk pode ser entendido como uma central de
atendimento que presta serviço de apoio ou suporte aos usuários em uma organização.
Um software para gestão de incidentes, comumente chamado de sistema de help
desk, é a ferramenta mais indicada para o registro e controle dos incidentes (OGC, 2007).
Segundo Cohen (2008), os sistemas de help desk apresentam vantagens sobre o telefone e email, pois como são de acesso aos usuários, permitem a estes que acompanhem o andamento
dos chamados e façam uso de outros recursos de forma autônoma.
Um sistema de help desk tem a função primária de receber questões e fornecer
soluções. As questões são especificamente dúvidas, necessidades ou problemas relatados por
usuários através dos chamados registrados no sistema. As soluções são fornecidas pela área de
Help Desk de forma assíncrona em resposta a estes chamados.
Em sistemas de help desk mais evoluídos conhecidos também como Sistemas
Especialistas, a solução de um dado problema é fornecida pelo próprio software de forma
simultânea. Através de uma base de conhecimento e regras pré-definidas o sistema é capaz de
apresentar soluções mediante as características do problema que lhe são informadas
exercendo o papel de um especialista humano (REZENDE, 2005).
Um Sistema Especialista, que é um tipo de Sistema Baseado em Conhecimento,
usa o conhecimento para resolver problemas de forma inteligente manipulando o
conhecimento de um domínio específico e informação (REZENDE, 2005).
O Raciocínio Baseado em Casos que é uma abordagem para solução de problemas
com base na experiência passada estabeleceu-se nos últimos anos como uma das tecnologias
mais populares e disseminadas para o desenvolvimento de Sistemas Baseados em
Conhecimento (WANGENHEIM; WANGENHEIM, 2003).
Este trabalho tem por intuito percorrer os caminhos que a tecnologia de
Raciocínio Baseado em Casos oferece para construção de um sistema de help desk com
recursos que otimizem o processo de resolução de problemas.
19
1.1
PROBLEMA
Com base na realidade apresentada no cenário de TI de uma empresa do ramo de
Telecomunicações situada em Florianópolis, foi possível levantar alguns fatos e situações que
motivaram o autor na escolha de um tema que visa o desenvolvimento de uma solução para
help desk.
A empresa que possui matriz em Florianópolis tem em torno de 1000 usuários
distribuídos em 15 filiais do Brasil. Embora cada unidade da empresa possua um técnico de
suporte, grande parte dos incidentes é encaminhada e gerida pela matriz que possui
atualmente uma equipe de quatro analistas de suporte.
Do que foi observado em loco juntamente a equipe de suporte, o fluxo do
processo de atendimento de usuários acontece da seguinte forma: 1) o usuário registra um
chamado relativo a um problema ou necessidade através do sistema de help desk; 2) um
especialista da área de TI analisa o caso e verifica as ações possíveis podendo recorrer ou
direcionar o problema a outros especialistas; 3) no período em que o chamado estiver em
andamento, poderão ocorrer várias interações entre o usuário e o especialista através de
conversas e inclusões de novas informações que poderão ser registradas no próprio chamado
onde é mantido o histórico do caso; 4) durante o atendimento, um chamado poderá passar por
vários estágios (ou status) como, por exemplo: a iniciar, em andamento, aguardando
informações, cancelado até a sua conclusão propriamente dita; 5) quando o caso é finalmente
solucionado, o chamado é concluído e encerrado.
Considerando o número de usuários da organização e a equipe de suporte da
matriz, o volume de chamados mensal que gira em torno de 400 é um número bastante
representativo que torna ambiente de trabalho em determinados momentos caótico.
Os tipos e níveis de gravidade dos problemas são bastante variados, desde as
ocorrências mais simples como, por exemplo, troca de um mouse defeituoso como outras
mais difíceis de resolver em curto prazo como, por exemplo, a necessidade de reformulação
do modelo de segurança de um sistema de gestão empresarial que foi detectada por um
analista de suporte ao atender vários usuários que manifestaram dificuldades de acesso.
Outro fato é que parte considerável dos chamados que são abertos, principalmente
os de questões relacionadas a problemas simples de configuração e utilização de softwares ou
dispositivos, como por exemplo, configuração de conta de e-mail e acesso a internet,
20
instalação de impressora, travamentos de aplicativos, etc., estes por suas ocorrências ou
reincidências, consomem demasiadamente o tempo da equipe de analistas para o seu
tratamento que na maioria das vezes não são capazes de suprir a demanda devido ao
envolvimento em casos mais críticos e/ou prioritários, comprometendo assim os prazos
estabelecidos pelos usuários para os chamados de rápida resolução.
Partindo deste ponto, o que se avalia é que problemas simples de TI, ou seja,
problemas julgados pela área de Help Desk como resolvíveis por usuários comuns, poderiam
ser solucionados sem a necessidade de abertura de chamados. Embora esta independência já
ocorra na prática, devido a um maior conhecimento em informática que um usuário possua
em relação a outro, fazendo com que o mesmo busque a solução pelos seus meios sem ajuda
ou suporte, isso se verifica apenas em uma minoria.
Sobretudo, o possível enxugamento do montante de chamados de rápida
resolução, traria à área de Help Desk grandes benefícios como principalmente, maior
qualidade de trabalho visto que os especialistas teriam tempo disponível para dedicar-se em
casos mais complexos e prioritários além de possibilitar ao setor de TI a oportunidade de
reestruturar-se, investir em novas melhorias, etc.
1.2
2.2.1
OBJETIVOS
Objetivo Geral
O objetivo geral deste trabalho é desenvolver o protótipo de um Sistema de
Informação para gestão de Help Desk que ofereça não só os recursos principais de um
software deste domínio, mas também um instrumento para o autoatendimento através do qual
os usuários possam utilizá-lo como ferramenta de consulta e busca de soluções visando com
isso beneficiar o serviço de atendimento e suporte de TI nas organizações.
Para tanto, o sistema é modelado e construído em conformidade com o conceito
de RBC (Raciocínio Baseado em Casos).
21
2.2.2 Objetivos Específicos
São objetivos específicos deste trabalho:
1.3

Reunir embasamento teórico sobre Sistemas Especialistas;

Gerar o modelo de um sistema de RBC em conformidade com a proposta do trabalho;

Gerar um protótipo implementado a partir do modelo do sistema;

Gerar uma avaliação com testes efetuados sobre o protótipo.
JUSTIFICATIVA
A lista de aplicações para os SEs é bastante extensa, mas pode ser classificada em
três grandes categorias como: manufatura, finanças e serviços no que compreende as áreas de
engenharia, educação, meteorologia, medicina, militar, telecomunicações, etc. (BARONE,
2003).
Segundo Turban, Mcclean e Wetherbe (2004), “Os Sistemas Especialistas são
capazes de oferecer às empresas soluções inovadoras e baratas para problemas que exigem
experiência”.
Raciocínio Baseado em Casos é aplicável de forma simples e direta a um espectro
grande de problemas e situações reais, o que justifica o seu sucesso e rápida aceitação aos
desenvolvedores de sistemas especialistas. RBC possui muitas vantagens que permitem a um
sistema propor soluções para problemas de forma bastante rápida. Sistemas baseados em
casos atravessam um período de expansão onde se encontra um número crescente de
aplicações. A gama de aplicações é extensa no que inclui: análise financeira, manutenção de
equipamentos, controle de processos, controle de qualidade, diagnóstico médico, suporte a
sistemas de software, planejamento, projeto auxiliado por computador, suporte ao cliente, etc.
(WANGENHEIM; WANGENHEIM, 2003).
Com base no problema anteriormente exposto e conhecidas as oportunidades que
a tecnologia de RBC pode oferecer para o desenvolvimento de sistemas inteligentes, verificase então a necessidade de prover uma solução que possibilite aos usuários resolver problemas
22
ligados à informática de forma autônoma, ou seja, sem a intervenção da área de suporte.
Entretanto, nenhum usuário seria capaz de solucionar sozinho um determinado problema de
informática sem que tivesse instrução para isso. Geralmente, dúvidas e instruções são sanadas
e fornecidas por um especialista humano que detém o conhecimento e a experiência
necessária do domínio de TI. Na sua ausência, um sistema utilizando RBC faria esse papel.
1.4
ESTRUTURA DA MONOGRAFIA
A estrutura deste trabalho é composta por seis capítulos. O capítulo 1 traz uma
introdução sobre Help Desk, o problema, objetivos e a justificativa acerca do tema abordado.
No capítulo 2 tem-se a revisão bibliográfica que expõe os principais conceitos sobre Help
Desk, Sistemas Especialistas e Raciocínio Baseado em Casos, contemplando assim toda a
fundamentação teórica. O capítulo 3 apresenta os itens que constituem o método de pesquisa
adotado bem como etapas, a proposta da solução e as delimitações do trabalho. O capítulo 4
apresenta a modelagem do sistema de help desk proposto. O capítulo 5 contempla o
desenvolvimento e prototipação do sistema. O capítulo 6 encerra a monografia com as
conclusões e propostas futuras.
23
2
REVISÃO BIBLIOGRÁFICA
Este capítulo apresenta a fundamentação teórica dos seguintes assuntos: help desk,
sistemas especialistas e raciocínio baseado em casos.
2.1
HELP DESK
Help Desk pode ser entendido como uma central de atendimento que presta
serviço de apoio ou suporte aos usuários em uma organização tendo como foco a solução de
problemas ligados a Tecnologia da Informação e Comunicação (STATDLOBER, 2006).
O termo help desk surgiu na década de 80, logo que os computadores pessoais
popularizaram-se. A busca das organizações pela informatização e a crescente inclusão do
computador como ferramenta de trabalho diária, acarretou um aumento da demanda por
suporte aos usuários destes equipamentos. Deste modo, muitas empresas criaram os Centros
de Informação (CI) com o objetivo de auxiliar as pessoas no uso dos computadores. Os CIs
eram apoiados por um Sistema Especialista de Diagnósticos e o conjunto deste sistema,
acrescentado com as funções de auxílio, foi denominado de help desk. Help Desk refere-se ao
serviço de suporte acerca de problemas relacionados a questões técnicas que, de modo geral,
referem-se à Tecnologia da Informação (TI) e telecomunicações. Esse serviço age tal como
uma central de apoio a usuários e é estruturada por uma equipe de atendentes e especialistas
técnicos que realizam o atendimento das solicitações recebidas e procuram solucioná-las em
tempo hábil (MULLER, 2002 apud MACHADO, 2008).
Conforme Cohen (2008), help desk é formado por três componentes básicos:

Pessoas: São os profissionais do atendimento responsáveis pelo encaminhamento dos
chamados bem como o tratamento, resolução e gestão dos incidentes;

Processos: São os métodos e procedimentos adotados pelos profissionais do
atendimento no tratamento dos incidentes;
24

Infraestrutura: Constitui-se por softwares, hardware, espaço físico entre outros itens
que amparam o serviço.
Nesse contexto, com relação à organização, a central de atendimento poderá na
maioria das vezes estar dividida em níveis ascendentes de atendimento conforme também seja
menor ou maior a complexidade dos problemas e o grau de conhecimento dos especialistas
(GARTNER GROUP, 2004 apud MACHADO, 2008).
2.1.1 Autoatendimento
A área de Help Desk está sempre em busca de novos métodos que tornem os seus
processos mais eficientes, e um deles é fornecer ao usuário recursos que lhe dê a capacidade
de se auto ajudar através da busca de soluções e orientações por conta própria. A implantação
deste tipo de recurso envolve a elaboração de uma coleção variada de documentos. Um dos
meios mais utilizados é desenvolver uma lista de FAQ (Frequently Asked Questions Perguntas mais Frequentes) e disponibiliza-la na intranet através do sistema de help desk da
empresa a todos os colaboradores ou clientes externos dependendo do tipo de negócio. Uma
FAQ
contém
geralmente
as
dúvidas
cotidianas
relativas
ao
cenário
de
TI local, como por exemplo, “como criar uma conta de e-mail?” ou “como trocar o cartucho
de tinta da impressora x?” e informações especializadas. Existem também outras formas de
autoajuda como softwares para diagnóstico de problemas, manuais, arquivos para download,
etc. (COHEN, 2008).
A seguir alguns exemplos de opções de autoatendimento além de FAQ, geralmente utilizados
por empresas (COHEN, 2008):

Centros de aprendizado: Voltado para educação a distância do usuário. Contém
videos, artigos, tutoriais e outras ferramentas de aprendizado;

Fóruns de discursão: Espaço no qual os usuários e/ou técnicos debatem formas de
uso de produtos e serviços;
25

Blogs de suporte: Contem informações dirigidas aos usuários e compartilhadas pelos
profissionais de atendimento.
O sistema proposto utiliza FAQ como recurso de autoatendimento, sendo o seu
emprego na solução estudado com mais propriedade na seção Raciocínio Baseado em Casos.
2.1.2 Importância da Base de Conhecimento
É comum que no dia-a-dia a área de Help Desk se depare com problemas e
situações dos mais variados tipos. Inúmeras experiências e tentativas foram realizadas para o
desfecho de tais situações. O gerenciamento dessas experiências e conclusões visa capturar,
organizar e governar o conhecimento dos técnicos. É de fundamental importância transformar
o conhecimento tácito pessoal (implícito de cada indivíduo e que não se exprime
formalmente) em conhecimento explícito documentado (expresso de forma clara, precisa e
formal) para que se promova o seu compartilhamento visando a solução de problemas futuros
(COHEN, 2008).
Para o usuário final, uma Base de Conhecimento (BC) pode ser considerada uma
primeira estância de atendimento. Normalmente a BC pode ser disponibilizada ao usuário
para o autoatendimento. A disponibilização de uma base de conhecimento aos usuários
permite que estes tenham acesso rápido, eficiente e direto aos recursos que necessitam
(COHEN, 2008).
Segundo Cohen (2008), a disponibilização da base de conhecimento traz os seguintes
benefícios para o usuário:

O usuário fica apto a resolver problemas por conta própria sem a necessidade de
recorrer ao Help Desk;

Aumento do nível de satisfação do usuário ao encontrar a solução sem ter que registrar
um chamado no sistema;

Aumento do período de atendimento de suporte, pois o usuário pode obter sua resposta
a qualquer hora (considerando uma base de acesso web);
26

Reduz custos internos uma vez que o número de questões respondidas aumenta, o
volume de chamados registrados diminui ou se mantem, reduzindo a necessidade de
contratações de mais técnicos.
Além dos benefícios trazidos para o usuário, uma base de conhecimento tem grande
importância também para a área de Help Desk como são citados os benefícios a seguir
(COHEN, 2008):

Promove-se o compartilhamento do conhecimento;

Evita as chamadas ilhas de conhecimento;

Reduz o tempo de conversação entre usuário e analista na busca da solução;

Reduz a necessidade de transferência de um caso para técnicos mais experientes de
níveis superiores de atendimento;

O analista de suporte tem a oportunidade de atender um leque maior de questões sob
as orientações da BC;

A BC se torna uma ferramenta efetiva de treinamento;

Novos técnicos que são contratados podem ser rapidamente instruídos e produtivos;

O conhecimento captado se torna o recurso intelectual do setor de Help Desk e
permanece mesmo que um de seus autores deixe a empresa;

Permite que um analista se ausente sem que o conhecimento fique inacessível.
2.1.3 O Software de Help Desk
Um software de help desk é uma das ferramentas utilizadas pela equipe de
atendimento e o principal meio com que os incidentes podem ser registrados e controlados
(STATDLOBER, 2006).
Na terminologia da ITIL (Information Technology Infrastructure Library), uma
definição mais técnica para incidente seria: “qualquer evento que não faz parte do
funcionamento normal de um serviço e que causa ou pode causar, a sua interrupção ou a sua
redução da qualidade.” (ITSMF, 2006).
27
Nesse contexto, incidentes incluem não somente erros de hardware ou software,
mas também requisições de serviço (ITSMF, 2006).
A principal característica de um software de help desk, está no fato de ser um
facilitador da comunicação entre as partes envolvidas em um dado problema onde serve como
um ponto único de contato entre usuários e a equipe de atendimento relativo a uma ou mais
questões em aberto. A IBM estabeleceu um termo no mercado que se tornou padrão para
muitas empresas: SPOC (Single Point of Contact – Ponto único de contato) onde todas as
solicitações entram por um determinado ponto de acesso. Este ponto pode ser um ramal
telefônico que distribui as tarefas para equipe técnica, ou nos dias atuais, um formulário web
ou chat on-line (COHEN, 2008).
2.2
SISTEMAS ESPECIALISTAS
Esta seção apresenta os Sistemas Especialistas como parte essencial para o
entendimento de Raciocínio Baseado em Casos que é foco principal da construção do sistema
proposto.
Nesta seção, dos itens que serão abordados a seguir estão: introdução ao assunto
Sistemas Especialistas, seus principais componentes, sua arquitetura e um comparativo aos
sistemas convencionais.
2.2.1 Introdução
Em termos gerais, conceitos mais atuais definem a IA como um ramo da ciência
da computação que se propõe a estudar e compreender as faculdades do pensamento e
construir dispositivos e sistemas que simulam a capacidade humana de raciocinar, perceber,
tomar decisões e resolver problemas, ou melhor dizendo, a capacidade de agir de forma
inteligente (RUSSEL; NORVIG, 2004).
28
Os Sistemas Especialistas (SE) surgiram com o propósito de restringir o campo de
domínio dos sistemas baseados em IA visto que é muito difícil a construção de sistemas cujo
propósito de resolução de problemas atenda a qualquer área e nível de dificuldade (RUSSEL;
NORVIG, 2004).
A principal característica de um SE está no modelo em que se organiza quanto à
aquisição de conhecimento e obtenção de respostas em face de um dado problema,
assemelhando-se no modo como um especialista humano procede na mesma situação. Um
médico, por exemplo, para diagnosticar uma determinada patologia, utiliza seu conhecimento
e experiência em conjunto com regras específicas de análise para que seu processo de
descoberta da resposta ou solução se faça de forma mais objetiva e confiável. Desta forma um
SE é basicamente um sistema que necessita de uma base pré-definida de conhecimento para
trazer as respostas com base em parâmetros de entrada que traduzem o problema (BARONE,
2003).
Os SEs são fundamentalmente Sistemas Baseados em Conhecimento (SBC) que
usam o conhecimento para resolver problemas de forma inteligente manipulando o
conhecimento e informação. Um SBC é projetado para ser usado em problemas que requer
conhecimento humano e especialização. Entretanto é importante diferenciar os Sistemas
Especialistas dos Sistemas Baseados em Conhecimento, pois de forma geral os SBC são
sistemas capazes de resolver problemas usando conhecimento específico sobre o domínio da
aplicação, enquanto que os SEs são SBC que resolvem problemas geralmente de domínio dos
especialistas humanos (REZENDE, 2005).
Perguntas, Problemas
Respostas, Soluções
Engenheiro do
Conhecimento
Estratégias,
Regras do domínio
Sistema Especialista
Figura 1 - Engenharia do Conhecimento
Fonte: Elaboração do autor, 2011.
A Figura 1 ilustra o processo de construção de um SE, geralmente chamado de
Engenharia do Conhecimento que tipicamente envolve uma forma especial de interação entre
29
o construtor do SE, chamado Engenheiro do Conhecimento, e um ou mais especialistas em
alguma área. O Engenheiro do Conhecimento captura dos especialistas através de entrevista
seus procedimentos, estratégias e regras práticas para solução de problemas e os transfere para
o SE (REZENDE, 2005).
2.2.2 Componentes dos Sistemas Especialistas
Conforme Waterman (1986), o esquema de representação de um SE pode ser
apresentado através dos seguintes componentes: o Sistema Especialista propriamente dito, o
domínio especialista, o Engenheiro do Conhecimento e o usuário final.

O Sistema Especialista: É o sistema computacional responsável por prover todos os
recursos necessários que atendam ao domínio de aplicação proposto. Isto envolve não
só a capacidade de fornecer respostas ao usuário final, mas também de dispor meios
para se desenvolver e se aperfeiçoar;

O Domínio Especialista: Envolve o conhecimento dos especialistas sendo estes
capazes de produzir boas soluções para problemas em um campo específico. O
especialista utiliza estratégias para tornar a pesquisa de uma solução mais eficiente e o
SE incorpora e modela estas estratégias;

O Engenheiro do Conhecimento: É a pessoa com qualificação necessária,
geralmente com algum conhecimento em computação e IA que é responsável pela
construção do SE. O Engenheiro do Conhecimento realiza entrevistas com os
especialistas, organiza o conhecimento, decide como ele deve ser representado e pode
ajudar programadores na construção do sistema;

O Usuário: Aquele que utiliza o SE.
30
Entrevistas
Testa
Engenheiro do
Conhecimento
Usuário final
Sistema Especialista
Constrói,
Testa
Usa
Figura 2 - Componentes dos Sistemas Especialistas
Fonte: Elaboração do autor, 2011.
A Figura 2 ilustra o diagrama de componentes do SE que apresenta as interações
existentes entre cada um.
2.2.3 Arquitetura dos Sistemas Especialistas
Segundo Barone (2003), a arquitetura de um sistema especialista pode ser
apresentada através de três elementos fundamentais que são: a base de conhecimento, o motor
de inferência e a interface do usuário.
2.2.3.1 A Base de Conhecimento
A base do conhecimento não é uma simples coleção de informações. A tradicional
base de dados com dados, arquivos, registros e seus relacionamentos estáticos é aqui
substituída por uma base de regras e fatos e também heurísticas que correspondem ao
conhecimento do especialista, ou dos especialistas do domínio sobre o qual foi construído o
sistema (NILSON, 1982).
De acordo com a ANSI/IEEE STD 100_1984, o termo “heurística” em Ciência da
Computação, diz respeito aos métodos ou algoritmos exploratórios para solução de
31
problemas. As soluções são buscadas por aproximações sucessivas, avaliando-se os
progressos alcançados, até que o problema seja resolvido.
A base de conhecimento contém a descrição do conhecimento necessário para a
resolução do problema abordado na aplicação. Isto inclui asserções sobre o domínio
de conhecimento, regras que descrevem relações neste domínio e, em alguns casos,
heurísticas e métodos de resolução de problemas (REZENDE, 2005, p. 26).
A base de fatos e a base de regras são acessíveis e apresentadas ao usuário de
forma dinâmica através da interface gráfica do sistema e estas interagem com o motor de
inferência a todo o momento, permitindo identificar o problema a ser resolvido, as possíveis
soluções e o processo de raciocínio e inferência acerca do problema submetido ao sistema
(MENDES, 1997).
Nos SEs estruturados, os passos para o diagnóstico e solução do problema passam
por uma sequência de perguntas onde a quantidade pode variar dinamicamente dependendo
das respostas que são respondidas pelo usuário onde o espaço de busca da solução a ser
percorrido pelo sistema encurta-se a cada interação do usuário.
Os SEs podem também possuir mecanismos de aprendizagem capazes de analisar
e gerar novas regras na base conhecimento e/ou armazenar informações sobre novos fatos,
ampliando sua capacidade de resolver problemas, tudo isso de forma automática e
transparente ao usuário durante a utilização do SE (CHECLAND, 1981 apud MENDES,
1997).
Embora se espere que as respostas produzidas pela base de conhecimento sejam
consistentes e precisas, ocasionalmente poderá haver conhecimento que gere conclusões
alternativas e conflitantes. Nesse caso, é importante que o sistema possua mecanismos para
analisar e escolher a melhor resposta entre as conclusões geradas. Em outra situação, nem
sempre o conhecimento necessário para gerar a resposta se encontrará na base, e neste caso, é
esperado que o sistema encontre uma resposta razoável como meio para contornar esta falta
(REZENDE, 2005).
32
2.2.3.2 O Motor de Inferência
O motor de inferência pode ser considerado o componente principal da arquitetura
dos sistemas especialistas. É através dele que os fatos, regras e heurísticas que compõem a
base de conhecimento, são aplicados durante o processo de resolução do problema
(BARONE, 2003).
O motor de inferência determina a ordem com que serão processadas as
informações, manipulando os dados a fim de inferir novos fatos, chegar a conclusões ou
recomendar ações. O motor de inferência representa a forma de manipular o conhecimento, já
representado na base, a fim de resolver o problema. Este mecanismo determina qual parte do
conhecimento deve ser utilizada a cada momento da execução do sistema (BARONE, 2003).
2.2.3.3 A Interface com o Usuário
A interação entre o SE e o usuário conduz um processo de navegação eficiente, na
base de conhecimento durante o processamento das heurísticas. Os procedimentos heurísticos
são informais e um problema submetido a um sistema especialista é mapeado em memória
por estratégias de busca que se encaixam e desencadeiam outras estratégias, sempre marcando
o caminho percorrido. Para isto, é necessário que a interface gráfica do sistema seja bastante
dinâmica e flexível (MENDES, 1997).
Nos SEs estruturados, uma interface flexível permite que o usuário primeiramente
estabeleça o problema ou os objetivos que deseja alcançar e prossiga em uma navegação por
sucessivas telas que apresentam de forma dinâmica, as proposições encontradas de acordo
com o resultado das inferências. O usuário continua interagindo com o sistema por esta
navegação progressiva até que um resultado final ou as possíveis soluções sejam
apresentados.
Dependendo de como foi implementado o sistema especialista, a interface com o
usuário poderá assumir formas variadas. Contudo é interessante que sua usabilidade seja fácil
e agradável, tornando o mais transparente possível todas as complexidades (REZENDE,
2005).
33
2.2.4 Sistemas Convencionais X Sistemas Baseados em Conhecimento
Segundo Rezende (2005), a comunidade de IA tem atribuído algumas
características específicas que definem os Sistemas Baseados em Conhecimento para
podermos chamá-los assim. Em resumo, os SBC devem ser capazes de:

Questionar o usuário, fazendo uso de uma linguagem de fácil entendimento, para
reunir as informações de que necessita;

Desenvolver uma linha de raciocínio a partir dessas informações e do conhecimento e
do conhecimento nele embutido para encontrar soluções satisfatórias. Para isso, o
sistema necessita lidar com regras e informações incompletas, imprecisas e
conflitantes;

Explicar seu raciocínio caso seja questionado pelo usuário do por que necessita de
informações externas e como chegou a tais conclusões. Para tanto, o sistema deve
memorizar as inferências realizadas durante o processo de raciocínio, ser capaz de
interpretar este processo e apresenta-lo de forma compreensível para o usuário;

Conviver com seus erros, isto é, tal como um especialista humano, o SBC pode
cometer erros, mas deve possuir um desempenho satisfatório que compense seus
possíveis enganos.
Embora as características acima estejam presentes nos SBC, elas não se
confirmam como fundamentais diferenças entre os SBC e os sistemas convencionais, pois
também é possível construir sistemas convencionais com estas características (REZENDE,
2005).
Os SBC devem possuir propriedades que podem ser definidas de um modo mais operacional e
que estabelece melhor tais diferenças como segue (REZENDE, 2005):

Tudo que se sabe sobre o problema deve estar explicitamente representado na base de
conhecimento do sistema;

A base de conhecimento deve ser usada por um motor de inferência capaz de
interpretá-la;
34

Os problemas resolvidos por SBC são aqueles sobre os quais não é conhecido um
procedimento ideal que garanta uma resolução efetiva considerando a variabilidade
dos tipos de problema e a ausência de conhecimento preciso e completo sobre o
domínio.
Sistemas Convencionais
Sistemas Baseados em Conhecimento
Estrutura de dados
Representação do conhecimento
Dados e Relações entre dados
Conceitos, Relações entre conceitos e Regras
Tipicamente usa algoritmos determinísticos
Busca heurística
Conhecimento embutido no código do Conhecimento representado explicitamente e
programa
separado do programa que o manipula e
interpreta
Explicação do raciocínio é difícil
Podem e devem explicar seu raciocínio
Quadro 1 - Sistemas Convencionais x Sistemas Baseados em Conhecimento
Fonte: REZENDE (2005, p. 18).
O Quadro 1 traça um comparativo das principais diferenças entre os Sistemas Convencionais
e os Sistemas Baseados em Conhecimento.
2.3
RACIOCÍNIO BASEADO EM CASOS
Segundo Wangenheim e Wangenheim (2003, p. 1), Raciocínio Baseado em Casos
(RBC) pode ser entendido como uma tecnologia utilizada para o desenvolvimento de
Sistemas Baseados em Conhecimento, que de forma geral, tem como objetivo a resolução de
novos problemas a partir das soluções adotadas em problemas similares já resolvidos.
Um sistema RBC tem como princípio, resolver novos problemas reutilizando sua
experiência que é baseada em soluções anteriores. Uma solução encontrada pode ser aplicada
em sua totalidade ou de forma parcial, podendo ainda ser modificada ou adaptada aos
requisitos da nova situação (WANGENHEIM; WANGENHEIM, 2003).
35
[...] pode-se definir RBC como um enfoque para a solução de problemas e para o
aprendizado baseado em experiência passada. 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 (WANGENHEIM; WANGENHEIM, 2003).
Os primeiros estudos do RBC começaram no início dos anos 80 através do
trabalho do grupo de Roger Schank, na Universidade de Yale, que criou as primeiras
aplicações baseadas neste modelo (BARONE, 2003).
A ideia de utilizar soluções antigas para resolver novos problemas surgiu a partir de
estudos cognitivos da memória, realizados por Schank. Segundo ele, a memória
humana se modifica com o resultado de experiências, e a compreensão de um
problema exige que experiências antigas sejam revistas (Schank, 1982).
Posteriormente, essas ideias foram elaboradas por Janet Kolodner, levando ao
desenvolvimento de sistemas especialistas que utilizavam medidas de similaridade e
técnicas de adaptação para reaplicar antigas soluções em novos problemas do
mesmo domínio (Kolodner, 1993). Kolodner desenvolveu o primeiro sistema RBC,
chamado CYURUS, que foi uma implementação do modelo de memória dinâmica de
Schank, servindo de base para outros sistemas RBC (BARONE, 2003, p. 210).
Embora seja inquestionável o sucesso dos SBC, estes apresentam problemas que
devem ser considerados tais como: a extração do conhecimento, implementação e
manutenção. Por outro lado, sistemas de RBC não apresentam tais problemas descritos, pois
conforme Barone (2003):

A extração do conhecimento limita-se a obter, reunir e analisar casos que
representam experiências ocorridas;

A implementação torna-se mais fácil, pois identificar características significantes dos
casos é mais fácil do que criar regras ou explicitar modelos;

Grandes volumes de dados podem ser administrados com aplicação de técnicas de
banco de dados;

O sistema pode aprender com a aquisição de novos conhecimentos.
Assim como o RBC é de fato uma técnica que simula o raciocínio humano, é
possível citar alguns exemplos de como os seres humanos utilizam casos conhecidos que
foram vivenciados como método de resolução de problemas atuais.
Conforme Wangenheim e Wangenheim (2003, p. 9), alguns casos cotidianos:
36

Durante o atendimento de um paciente após conhecer seus problemas, o médico
lembra-se do histórico de outro paciente que possui sintomas similares e lhe aplica
um tratamento semelhante;

Um técnico de aparelhos eletrônicos percebe que a TV que está tentando concertar
apresenta em seu problema, as mesmas características de outra que consertara
semana passada;

Um profissional jurídico reforça os seus argumentos com jurisprudências
semelhantes para decidir um caso com base em outros similares.
Raciocínio Baseado em Casos é antes de tudo, uma técnica de Inteligência
Artificial que se inspira neste modelo de cognição e comportamento humano. Desta forma, a
tecnologia de RBC pode ser vista como uma metodologia para modelar o raciocínio e o
pensamento humano e também como uma metodologia utilizada para construir sistemas
computacionais inteligentes (WANGENHEIM; WANGENHEIM, 2003).
2.3.1 Representação do Conhecimento
A principal forma de representação do conhecimento em sistemas de RBC é
através de casos. Um caso é uma unidade contextualizada de conhecimento que representa
uma experiência (KOLODNER, 1993 apud WANGENHEIM; WANGENHEIM, 2003).
Tipicamente, um caso reúne em seu contexto, o par problema/solução, no que
inclui: a descrição de uma situação (problema) e as experiências acerca da sua resolução
(solução) (WANGENHEIM; WANGENHEIM, 2003).
37
Figura 3 - Exemplo simplificado de caso
Fonte: Wangenheim e Wangenheim (2003, p. 11).
A Figura 3 apresenta um exemplo de caso que ilustra o modelo de representação do
conhecimento em RBC.
Para Kolodner (1993 apud WANGENHEIM; WANGENHEIM, 2003), a
representação dos casos apresenta três componentes básicos que são: a descrição do problema,
a descrição da solução e a conclusão.
Segundo Barone (2003), a definição destes três componentes:

Descrição do problema: São as características que descrevem o problema de entrada.
Tais características podem assumir a forma de nomes, números, funções ou textos que
servem para representar características, objetivos, metas, restrições ou condições;

Descrição da solução: São as características que descrevem a solução do caso. A
solução do caso é a ação ou conjunto de ações sugeridas pelo sistema que resolvem o
problema. A solução pode ainda ser acompanhada de uma justificativa que irá auxiliar
o usuário na escolha do caso como solucionador do problema;

Conclusão: É a avaliação da solução que foi adotada num determinado problema.
38
Por fim, a coleção de casos de um sistema de RBC é organizada e armazenada em
uma base de dados conhecida como Base de Casos que constitui a maior parte da Base de
Conhecimento.
2.3.2 Ciclo do RBC
O Ciclo de RBC proposto por Aamondt e Plaza (1994 apud WANGENHEIM;
WANGENHEIM, 2003), é um modelo que representa o RBC através de um ciclo de quatro
etapas que são: recuperação, reutilização, revisão e retenção.
Figura 4 - Ciclo do Raciocínio Baseado em Casos
Fonte: Wangenheim e Wangenheim (2003, p. 15).
A Figura 4 apresenta o ciclo do RBC e suas etapas que serão explanadas nas próximas seções.
39
2.3.2.1 Recuperação
É o processo de recuperação do caso ou dos casos mais similares da base de casos.
A partir de um novo problema, uma busca é realizada na base de casos a procura dos casos
cuja descrição seja semelhante a do problema atual. O objetivo é recuperar e disponibilizar ao
usuário, todos ou um número limitado de casos mais similares. A ideia é que a solução de um
caso suficientemente similar ao atual também poderá ser utilizada para sua solução
(WANGENHEIM; WANGENHEIM, 2003).
A similaridade dos casos recuperados é determinada por meio da medida de
similaridade e durante o processo de recuperação cada caso tem sua similaridade calculada.
Ao final, os casos são ordenados de forma decrescente pelo valor de sua similaridade para que
assim o sistema apresente o resultado (WANGENHEIM; WANGENHEIM, 2003).
Conforme Wangenheim e Wangenheim (2003), algumas técnicas de recuperação
podem ser utilizadas nos sistemas de RBCs, como por exemplo, a recuperação Sequencial, a
recuperação de Dois Níveis, a Orientada a Índices, a recuperação com Arvores k-d e as Redes
de Recuperação de Casos.
Para o sistema proposto, a técnica de recuperação escolhida foi a sequencial.
Segundo Wangenheim e Wangenheim (2003), na Recuperação Sequencial (RS) a medida de
similaridade é calculada sequencialmente para todos os casos da base.
Segundo Wangenheim e Wangenheim (2003, p. 150):
O processo de recuperação sequencial permite 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 o conceito de similaridade do sistema sucessivamente a cada um
dos casos da base de casos. Todos os casos pertencentes à base são então ordenados
de acordo com os m casos mais similares. O método de recuperação sequencial é um
método de aplicação universal e extremamente fácil de ser implementado para a
determinação de casos similares.
As principais vantagens do uso da RS estão na simplicidade de implementação e
por
ser
um
processo
comprovadamente
completo
e
correto
(WANGENHEIM;
WANGENHEIM, 2003).
Para o sistema proposto, um método adotado para reduzir o montante de casos
candidatos que são comparados, foi dispor um filtro de pesquisa no motor de busca, pois o
40
cálculo da similaridade não deve necessariamente ser aplicado a todos os casos da base
durante a busca dos casos mais similares. Desta forma, um caso quando cadastrado, pode ser
categorizado de acordo com o tipo de problema que representa como, por exemplo, software,
hardware, e-mail, impressão, etc. Assim o usuário poderá antes de executar a busca, delimitar
a consulta para uma categoria de casos específica o que trará um proporcional ganho de
desempenho no processo de recuperação.
Figura 5 - Recuperação de casos
Fonte: Elaboração do autor, 2011.
A Figura 5 sintetiza o processo de recuperação de casos no que compreende a
consulta na base de casos, o cálculo da similaridade e o ranqueamento dos casos.
2.3.2.2 Reutilização e Adaptação
A reutilização consiste principalmente da adaptação da solução do caso anterior
ao caso atual e as técnicas tratadas na reutilização de casos tentam resolver os problemas
41
envolvidos na adaptação de casos, que são: quais aspectos da situação devem ser adaptados,
quais modificações devem ser realizadas para esta adaptação, que método aplicar para realizar
a adaptação e como controlar este processo (WANGENHEIM; WANGENHEIM, 2003).
Quando um caso que foi recuperado da base não satisfaz por completo os
requisitos do novo problema, pode se tornar necessário adaptar a solução do caso recuperado.
Na maioria dos domínios de aplicações RBC, para que se aplique a solução, será suficiente
copiar a solução do caso recuperado para o caso atual ou então adaptar o caso recuperado
manualmente (WANGENHEIM; WANGENHEIM, 2003).
Para sistemas de RBC que desempenham tarefas analíticas de classificação,
diagnóstico ou suporte à decisão, uma estratégia frequentemente utilizada é contornar o
problema da adaptação tornando a base de casos o mais completa possível de forma que
contenha os relativos casos para os inúmeros tipos de problemas sem que haja a necessidade
de adaptação (WANGENHEIM; WANGENHEIM, 2003).
Segundo Wangenheim e Wangenheim (2003), existe uma série de estratégias de
adaptação automáticas como, por exemplo, adaptação transformacional, gerativa/derivacional,
composicional, hierárquica e nula sendo esta última a escolhida para o sistema.
2.3.2.2.1 Adaptação Nula
Conforme Wangenheim e Wangenheim (2003), neste tipo de adaptação, nada é
adaptado e a solução apresentada pelo caso recuperado é tomada total ou parcialmente para
resolver o problema atual sem a necessidade de modificações. “A maioria dos sistemas de
RBC comerciais atuais trabalham apenas com adaptação nula.” (WANGENHEIM;
WANGENHEIM, 2003).
42
2.3.2.3 Revisão
Após a solução ter sido adaptada, faz-se necessário que esta seja revisada e se
preciso for, corrigida. Os critérios para revisão da solução podem ser a qualidade desta
solução, a facilidade de compreensão desta solução por parte do usuário ou a quantidade de
esforço para implementar esta solução (WANGENHEIM; WANGENHEIM, 2003).
O processo de revisão pode ocorrer de forma automática por parte do sistema de
RBC ou com a participação do Engenheiro de Conhecimento.
Segundo Wangenheim e Wangenheim (2003), a etapa de revisão consiste em duas tarefas
principais que podem também ser verificadas no fluxograma a seguir:

Aprender e reter na base, se a solução gerada pelo reuso é considerada correta;

Caso contrário, reparar a solução para o caso utilizando conhecimento específico sobre
o domínio ou as informações fornecidas pelo usuário.
43
Figura 6 - Fluxograma: Revisão do caso recuperado
Fonte: Elaboração do autor, 2011.
Para o sistema proposto, a etapa de revisão de um novo caso ocorre de forma
manual sob a responsabilidade do Engenheiro do Conhecimento ou pessoa responsável pela
manutenção da base de conhecimento.
2.3.2.4 Retenção
Assim que um problema é resolvido, a nova experiência poderá ser incorporada à
base de casos de forma que o conhecimento presente do sistema é continuamente atualizado e
expandido. Tendo concluído o processo de adaptação e revisão do novo caso, se a solução
proposta for aceita, esta poderá ser retida na base de casos, enriquecendo ainda mais a atual
base de conhecimento do sistema. Após a incorporação desta solução na base de casos, esta
44
estará disponível para utilização em problemas futuros (WANGENHEIM; WANGENHEIM,
2003).
Geralmente o processo de retenção ocorrerá com a participação humana. “A
decisão de reter as soluções propostas pelo sistema RBC, provavelmente terá a participação
do usuário, o que não deve ser visto como uma fraqueza do sistema RBC, mas sim como uma
maneira de encorajar a colaboração humana no apoio à tomada de decisão” (WATSON, 1997
apud BARONE, 2003, p. 211).
Segundo Wangenheim e Wangenheim (2003), é possível distinguir três tipos básicos de
retenção:

Sem retenção de casos: Aplicado nos sistemas de RBC mais simples onde o domínio
de aplicação é bem compreendido e modelado de forma satisfatória já durante o
desenvolvimento do sistema;

Retenção de soluções de problemas: Assim que um novo problema é resolvido, a
experiência é então retida de forma a auxiliar na solução de problemas futuros. Num
sistema de help desk, por exemplo, cada chamado resolvido de forma satisfatória pode
vir a ser um caso incorporado da base. Esta forma de aprendizado é uma das maiores
vantagens específicas do RBC, pois o aprendizado e a aplicação do conhecimento
aprendido não são separados, mas sim integrados;

Retenção de documentos: O novo conhecimento é adquirido de forma assíncrona ao
processo de solução de problemas de forma que é retido quando se encontrar
disponível. Aqui a fase de retenção de casos é separada do processo de solução de
problemas e depende da disponibilidade de conhecimento sobre o domínio. No caso de
um sistema de suporte à decisão na área jurídica, por exemplo, uma nova
jurisprudência pode ser adicionada na base de casos assim que disponível.
Para o sistema proposto, como será visto mais adiante, cada chamado de help desk
que é resolvido ou cada dúvida de usuário que é postada referente a um problema cuja solução
não foi encontrada na base de conhecimento, poderá separadamente do processo de solução,
conforme a avaliação do Engenheiro do Conhecimento vir a se tornar um caso da base de
conhecimento, o que caracteriza dois tipos de retenção: retenção de solução de problemas e
retenção de documentos.
45
Além disso, o sistema proposto utiliza um tipo de Raciocínio Baseado em Casos
denominado Textual como será visto na próxima seção. Esta técnica de RBC considera casos
como documentos.
2.3.3 Raciocínio Baseado em Casos Textual
A ideia básica do RBC Textual é comparar documentos representados por casos
em termos de similaridade. Para acessar a informação contida em documentos textuais, cada
documento é convertido em um único caso (LENZ; HÜBNER; KUNZE, 1998b apud SÁ
2007).
Segundo Baeza-Yates e Ribeiro-Neto (1999 apud SÁ, 2007), a similaridade dos
documentos não se baseia simplesmente nas palavras que os constituem, mas também em uma
medida de similaridade que é construída durante a aquisição do conhecimento. Uma técnica
de Recuperação de Informação (RI) dos casos lida com a representação, organização e acesso
aos itens de informação. Na tentativa de selecionar documentos textuais relevantes, técnicas
de RI podem ser aplicadas.
Para Lancaster (1993 apud CAMPOS, 2007), um sistema de RI é um fenômeno
complexo que envolve informação, documentos, pedidos de usuários, resumos de
documentos, mecanismos que permitem a busca de documentos e pessoas. As pessoas
envolvidas são de dois tipos: operadores do sistema, que são os responsáveis por dar a entrada
de documentos no sistema e usuários do sistema, que fazem os pedidos ou as requisições ao
sistema.
Considere o seguinte problema e as posteriores considerações conforme Baeza-Yates e
Ribeiro-Neto (1999 apud SÁ 2007):
Encontrar todas as páginas (documentos) contendo informações sobre tipos de vírus
de computador que (1) relacionem os nomes dos vírus para os quais já tenham sido
desenvolvidas ferramentas específicas de remoção e (2) que tais ferramentas de
remoção possam ser utilizadas no sistema operacional Windows Server versão 2003.
Para serem relevantes, as páginas devem incluir a disponibilidade dessas
ferramentas.
46
Conforme o problema descrito, a informação que está sendo requerida pelo
usuário não pode ser recuperada através dos mecanismos de busca mais simples da web.
Entretanto, se tal problema ou necessidade fosse traduzido para um sistema de RI em termos
organizados de consulta, a informação solicitada poderia ser recuperada. A transformação do
problema de entrada em consulta gera um grupo de palavras-chave (ou termos indexados) que
descrevem a necessidade de informação digitada pelo usuário de forma resumida. Assim que
é concluído o processo de indexação dos termos, o sistema de RI poderá iniciar a recuperação
da informação (BAEZA-YATES; RIBEIRO-NETO, 1999 apud SÁ 2007).
Desta forma, sistemas de RI podem ser aplicados em qualquer domínio de
conhecimento onde documentos textuais estejam disponíveis. A aquisição de conhecimento
envolve a construção de um modelo de domínio que descreva as propriedades essenciais deste
domínio, como principalmente, os termos (LENZ; HÜBNER; KUNZE, 1998a apud SÁ
2007).
A construção de um sistema de RBC Textual requer a definição de três
componentes básicos que são: a coleção de casos, o índice de vocábulos e a medida de
similaridade (LENZ; HÜBNER; KUNZE, 1998a apud SÁ 2007):

A coleção de casos: Compreende cada caso (ou documento) contendo sua descrição
textual do problema que irá integrar a base de casos;

O índice de vocábulos: Seleção das palavras (ou termos indexadores) que são
inerentes ao domínio escolhido;

A medida de similaridade: A definição lógica de como a similaridade entre os termos
do problema e os termos de cada caso será calculada.
Segundo Wilson e Bradshaw (1999 apud SÁ 2007), os sistemas de RBC textuais
podem ainda ser classificados de acordo com o seu contexto: levemente textuais e fortemente
textuais.

Contexto Levemente Textual: Um contexto levemente textual é aquele onde não há
necessidade de complexas manipulações da informação textual. Nesse tipo de
contexto a importância da informação textual é maior que a importância do significado
do texto como base para o raciocínio. Ou seja, não há necessidade de um
processamento sofisticado para a utilização do texto em sistemas de RBC textuais;
47

Contexto Fortemente Textual: Em um contexto fortemente textual a importância do
significado do texto como base para o raciocínio é maior que a da informação textual.
Um contexto fortemente textual requer um tratamento mais especializado, como por
exemplo, técnicas de Processamento de Linguagem Natural e Extração de Informação.
Para o sistema proposto, é utilizada como base de casos uma FAQ. FAQ numa
definição mais simples, pode ser entendida como uma lista de perguntas mais frequentes
acerca de um tema. Referente ao tema, uma FAQ relaciona questões que abordam os
procedimentos de utilização, como por exemplo, de máquinas, equipamentos, softwares,
utensílios domésticos, etc. Geralmente as perguntas e respostas são estabelecidas com base
em dúvidas, necessidades ou problemas levantados por quem utiliza o objeto em questão.
Neste caso, uma FAQ para Help Desk, relaciona perguntas e respostas acerca de dúvidas ou
problemas ligados geralmente a informática.
Uma FAQ para Help Desk é considerada levemente textual devido a grande
quantidade de informações já estar disponível em cada documento (SÁ, 2007).
Outro aspecto interessante é que uma FAQ possui uma estrutura que atende os
requisitos definidos nas etapas do RBC. O par pergunta-resposta pode ser considerado como
um caso, sendo que a pergunta serve como um índice do conhecimento contido na resposta
(LIMA, 2004 apud FERNANDES et al., 2010).
A lista de perguntas frequentes que foi utilizada no sistema proposto pode ser
verificada no apêndice A. Os exemplos usados foram coletados de forma aleatória tendo
como principal fonte alguns manuais de ajuda da Microsoft.
2.3.3.1 Recuperação em RBC Textual
Para Baeza-Yates e Ribeiro-Neto (1999 apud FERNANDES et al., 2010), antes de
iniciar o processo de recuperação de um caso, é importante que haja um pré-processamento do
texto da coleção de documentos, pois nem todos os termos são significativos, ou seja, o préprocessamento determinará quais termos serão realmente utilizados como índices durante a
recuperação.
48
Existem algumas técnicas utilizadas para pré-processamento de texto, como por
exemplo, stemming e análise léxica. Para o sistema proposto, utilizou-se como técnica de préprocessamento, a transformação de texto denominada eliminação de stopwords.
Considera-se stopwords, os termos que são muito frequentes nos documentos e
por esta razão, não são considerados bons discriminantes. Em termos quantitativos, palavras
com 80% de ocorrência em um dado documento, não tem utilidade para a recuperação.
Durante o pré-processamento, assim que uma stopwords é detectada, esta é removida do
documento. Através dessa técnica, artigos, preposições, advérbios, alguns verbos, e alguns
adjetivos compõem uma lista de palavras denominada stoplist e os termos listados em uma
stoplist não servirão como termos indexados durante a recuperação. A eliminação das
stopwords reduz o tamanho da estrutura dos índices consideravelmente, o que pode melhorar
a etapa da recuperação dos documentos (FERNANDES et al., 2010).
Para aumentar a eficiência do processo de busca de casos, o sistema de RBC
poderá utilizar um dicionário de sinônimos.
Considere os seguintes problemas:
a) Como envio um pedido de parafusos para a fábrica por e-mail?
b) Como envio por e-mail uma solicitação de parafusos para a fábrica?
As duas frases expressas como dúvidas de usuários, possuem o mesmo significado embora
tenham sido escritas de forma diferente, caracterizando assim uma paráfrase.
Para tratar este tipo de inconsistência, é de grande importância a incorporação de
um dicionário de sinônimos ao sistema de RBC, o que torna a busca mais eficiente e o
resultado do cálculo de similaridade entre os casos e o problema mais preciso e confiável.
O dicionário de sinônimos tem como objetivo associar palavras com o mesmo
significado, mas que são escritas de forma diferente. Para os problemas descritos acima, as
palavras “pedido” e “solicitação” possuem o mesmo significado e são sinônimos dentro do
domínio, embora sejam escritas de forma diferente (FERNANDES et al., 2010).
49
2.3.3.2 Modelos de Recuperação de Informação
Os modelos tradicionais de Recuperação de Informação denominados modelos
quantitativos, surgiram nas décadas de 60 e 70, sendo aperfeiçoados na década de 80, e ainda
hoje se constituem os modelos de RI mais tradicionais estando presentes na maioria dos
sistemas de recuperação atuais, inclusive na web (WIVES, 1997; BAEZA-YATES, 1999 apud
FERRAZ, 2011).
Esta seção aborda os principais modelos de RI quantitativos que são: o Booleano,
o Probabilístico e o Vetorial sendo este último o escolhido para o sistema proposto e que é
estudado como maior profundidade neste trabalho.
2.3.3.2.1 Modelo Booleano
Dentre os modelos de RI citados, o modelo Booleano é considerado o mais
simples, baseado na teoria dos conjuntos e na álgebra Booleana. As consultas são definidas
por meio de expressões Booleanas compostas por termos de índice e os conectores NOT, AND
e OR. Neste modelo, os termos de índice ou estão presentes num documento ou não estão,
portanto, os pesos dos termos assumem valores binários, 0 ou 1 (TSUJI; KAMAURA, 2008).
As vantagens do modelo Booleano são a simplicidade e o formalismo claro
subjacente ao modelo. Entretanto este modelo diz apenas se cada documento é relevante ou
não, ou seja, não existe a noção de parcialidade na verificação das condições da consulta.
Outras desvantagens estão na restrição da qualidade dos resultados obtidos, sendo que é
retornando um conjunto de documentos ou muito pequeno ou muito grande e nem sempre a
tradução de uma requisição de informação para uma expressão booleana é uma tarefa simples,
principalmente para usuários comuns (TSUJI; KAMAURA, 2008).
2.3.3.2.2 Modelo Probabilístico
50
O modelo Probabilístico trabalha inicialmente em cima da possibilidade de um
documento aleatório ser relevante ou não. Devido ao fato de os usuários não conhecerem
previamente quais são as características de cada documento, a primeira consulta é escrita
tentando descobrir quais são essas características, o que gera uma primeira descrição
probabilística do conjunto. Através dos resultados obtidos nas execuções de consultas
subsequentes à primeira, é possível que ocorra uma melhoria gradativa desses resultados,
proveniente justamente da interação sucessiva do usuário, o qual pode selecionar, dentre os
documentos retornados, aqueles que considera mais relevantes à sua necessidade. Essa
característica relacionada à interação do usuário é conhecida como Relevance Feedback
(WIVES, 1997; FERNEDA, 2003 apud FERRAZ, 2011).
Porém, em suas formalizações matemáticas, algumas hipóteses usadas no
processo de simplificação dos cálculos probabilísticos podem deixar margem de dúvida
quanto à sua precisão, e adicionalmente, a alta complexidade é um fator que desencoraja seu
uso (FERRAZ, 2011).
2.3.3.2.3 Modelo Vetorial
Ao contrário do modelo Booleano, no modelo Vetorial existe a possibilidade de se
obter documentos que correspondam parcialmente a uma expressão de busca, através da
atribuição de pesos não binários aos termos indexados contidos na consulta e nos documentos.
Através desses pesos é que são calculados os graus de similaridade entre os documentos da
base e a expressão de busca do usuário. Assim, o resultado das buscas se relaciona à obtenção
de documentos classificados pelo grau de similaridade que possuem em relação a expressão
de busca formulada pelo usuário, introduzindo dessa maneira a noção de relevância aos
documentos obtidos (FERRAZ, 2011).
O modelo Vetorial é um modelo algébrico usado para representar os termos de
índices dos documentos e das consultas num espaço vetorial. Associado a cada um dos
termos, atribui-se um peso de valor não binário (ao contrário do modelo booleano) que
posteriormente será utilizado no cálculo do grau de similaridade entre o documento
armazenado na base e a consulta do usuário. Assim, dada uma consulta, o modelo vetorial
51
avalia de forma ponderada o quanto um documento é relevante, possibilitando uma
correspondência parcial em relação à consulta (TSUJI; KAMAURA, 2008).
Conforme Baeza-Yates e Ribeiro-Neto (1999):
No modelo vetorial, o peso wi,j associado ao par (ki , d j) é positivo e não binário, onde
ki é um termo de índice e d j um documento. Além disso, os termos de índices na
consulta também são ponderados. Seja wi,q um peso associado ao par [ki , q], onde
wi,q ≥ 0. Então, o vetor da consulta 𝑞 é definido como 𝑞 = (𝑤1,𝑞 , 𝑤2,𝑞 , … , 𝑤𝑡,𝑞 ) onde
t é o número total de termos de índices no sistema. O vetor do documento d j é
representado por d 𝑗 = (𝑤1,𝑗,𝑤2,𝑗 ,…,𝑤𝑡,𝑗 ).
No modelo vetorial são utilizados os fatores: tf factor, que calcula a quantidade de
vezes que o termo ki aparece no documento dj, (fornecendo uma medida de quão bem k i
descreve dj), e o idf factor (inverse document frequency) que mede o inverso da frequência do
termo ki dentro da coleção dos documentos (fornecendo uma medida da dissimilaridade). O
principal motivo do uso desse fator idf se deve ao fato de que uma palavra que apareça em
muitos documentos não pode ser usada para distinguir os objetos da coleção (TSUJI;
KAMAURA, 2008).
Para a realização do cálculo do peso, devem ser considerados dois fatores principais
(FERRAZ, 2011):
1) A quantidade de vezes que o termo aparece dentro de um documento;
2) A quantidade de vezes que esse termo aparece em outros documentos.
Conforme Baeza-Yates e Ribeiro-Neto (1999):
Seja N o número total de documentos no sistema e ni o número de documentos que o
índice ki aparece. Seja freqi,j a frequência bruta do termo ki no documento d j (isto é, o
número de vezes que o termo ki é mencionado no texto do documento d j). Então, a
frequência normalizada fi,j do termo ki no documento d j é dada por:
onde o máximo é computado sobre todos os termos que são mencionados no texto
do documento d j .Se o termo ki não aparece no documento d j, então fi,j = 0. Além
disso, seja idfi a frequência inversa do documento para ki dada por:
52
Assim, a fórmula conhecida como tf-idf dada aos pesos é:
ou uma variação dessa fórmula.
É importante destacar o fato de que, quanto mais um termo aparece em um
número maior de documentos, mais o idf se aproxima de zero, ou seja, a relevância desse
termo em relação ao conjunto de documentos diminui.
Assim, dado um vetor dj representando um documento e um vetor q representando
a expressão de consulta do usuário, o cálculo da similaridade é por sua vez realizado
calculando-se o cosseno do ângulo formado pelos vetores dj e q através da equação mostrada
a seguir (OLIVEIRA, 2005 apud FERRAZ, 2011).
Onde dj e q são as normas do vetor do documento e do vetor da consulta respectivamente.
Sendo assim, a similaridade sim(dj,q) calculada entre dois documentos varia de 0 (completa
dissimilaridade) até 1 (completa similaridade). Como o modelo vetorial objetiva quantificar a
relevância de um documento e não simplesmente definir se o documento é relevante ou não, é
possível através do grau de similaridade, fazer um ranqueamento dos documentos relevantes.
Para o sistema proposto uma busca realizada recupera os cinco documentos mais
relevantes classificados por ordem de similaridade.
Tomando como exemplo a seguinte consulta q de um usuário:
“Como mudar a resolução da tela?”
Efetuando o pré-processamento do texto do documento q através da eliminação das
stopwords, teríamos os seguintes termos ki indexadores:
Como mudar a resolução da tela?
k1
k2
k3
mudar resolucao tela
Além da eliminação das stopwords, o algoritmo de RI também elimina os sinais
de pontuação, caracteres especiais, chaves, colchetes, etc. As vogais acentuadas como “á”,
“ô” são substituídas pela sua vogal correspondente sem acentuação e as cedilhas “ç” são
53
substituídas simplesmente pela letra “c”. Além disso, todos os documentos são convertidos
para letras minúsculas o que aumenta a eficiência durante o processo de comparação.
Durante o processo de cálculo do peso wij de um termo ki em um dado documento
dj, o algoritmo de RI quantifica as frequências fi,j e ni de ki em dj varrendo todos os
documentos e buscando de forma direta o termo indexado ki do documento q da consulta.
Caso as frequências fi,j ou ni de um termo sejam iguais a 0, ou seja, se um dado termo ki da
consulta não aparece no documento dj e nem em outros documentos, o algoritmo de RI
reinicia uma nova busca para este termo, desta vez traduzindo o termo da consulta (palavra
utilizada pelo usuário) pelo termo correspondente do documento através do dicionário de
sinônimos.
É de fundamental importância que todos os documentos (casos) da base de
conhecimento sejam cadastrados utilizando os termos mais corretamente indicados,
respeitando a língua e a gramática. O Engenheiro do conhecimento deverá cadastrar no
dicionário de sinônimos do sistema as principais palavras ou termos contidos na base de
conhecimento que estão sujeitas a variações como gírias, abreviações ou propriamente seus
sinônimos que possam eventualmente vir a ser utilizados nas consultas por usuários. O
dicionário de sinônimos aumentará a chance de recuperação de documentos relevantes.
Na consulta “Como mudar a resolução da tela e melhorar a imagem do monitor?”,
o termo “mudar” não seria encontrado de forma direta nos documentos sendo este um
sinônimo do termo “alterar” adotado pelo Engenheiro do Conhecimento.
Durante o processo de cálculo do peso deste termo, o algoritmo de RI não encontrando a
palavra “mudar” nos documentos, automaticamente buscaria o seu termo correspondente
através do dicionário de sinônimos, recuperando assim o termo “alterar”, finalizando o
cálculo e dando continuidade aos próximos termos do documento da consulta.
Calculando-se o peso dos termos indexadores ti da consulta q, teríamos seguintes valores
fictícios conforme a Tabela 1.
Tabela 1 - Pesos dos termos da consulta
Termos (ti)
Pesos (wi )
t1
alterar
0.3
t2
resolucao 0.7
t3
tela
0.5
Fonte: Elaboração do autor, 2011.
54
Neste caso as frequências fi,j de cada termo são calculadas sobre o próprio documento da
consulta q.
Considerando também os documentos fictícios d1 e d2 indexados pelos termos ti, teríamos os
seguintes pesos conforme tabela a seguir.
Tabela 2 - Pesos dos termos dos documentos
Termos (ti)
Pesos (wi ) de d1 Pesos (wi ) de d2
t1 alterar
0.4
0.2
t2 resolucao 0
0.6
t3 tela
0
0.6
Fonte: Elaboração do autor, 2011.
Conforme a Tabela 2, os pesos com valor igual a 0 representam a inexistência do
termo indexador ti no documento dj.
Calculando-se a similaridade de cada documento dj em relação a consulta q teríamos:
(
𝑞)
(
𝑞)
√(
)
( )
√(
)
(
(
)
)
√(
)
(
)
(
)
( )
√(
)
(
)
(
)
De acordo com os resultados obtidos, conclui-se que o documento d2 apresentou o maior
valor, possuindo assim 82% de similaridade em relação ao documento da consulta q.
As principais vantagens de utilizar o modelo vetorial são (TSUJI; KAMAURA, 2008):

O uso de termos de índices ponderados melhora o desempenho da recuperação de
informação;

Os documentos recuperados tendem a se aproximar mais ao que a consulta descreve,
uma vez que a correspondência pode ser parcial entre ambos;
55

Após o cálculo da correlação entre o documento e a consulta, é possível ordenar os
resultados obtidos conforme o grau de similaridade;

É um modelo simples e rápido.
2.3.4 Exemplos de Aplicações RBC
A seguir alguns exemplos de sistemas de RBC aplicados ao domínio de Help
Desk inclusive utilizando FAQ que são: SMART, FAQ para Help Desk, CBR-Answers,
FAQFinder e FAQBots.
O SMART da Compaq é utilizado para auxiliar seus clientes e é acessível através
de uma ligação telefônica. O sistema está em operação desde 1992 e tem um processo de
constante mudança, com cerca de 600 estudos de caso. Uma comparação feita pela Compaq
constatou-se que após a introdução do sistema houve uma melhoria de 175% para a taxa de
resposta de pedidos de clientes. Com a introdução do SMART, a duração média de uma
chamada foi reduzida em 30%, 87% das chamadas foram resolvidas no primeiro nível do
suporte e 95% das chamadas de clientes resolvidas dentro de um período de 10 minutos
(WESS, 1998 apud FERNANDES et al., 2010).
O FAQ para Help Desk desenvolvido na ferramenta Lotus Notes é um sistema de
help desk integrado a uma base de FAQ que possibilita a inclusão de problemas ocorridos
pelas mais diversas áreas de negócios de uma empresa de TI. O sistema ainda permite a
coordenação e acompanhamento das solicitações cadastradas no decorrer de cada etapa do
fluxo, permitindo uma rápida consulta e retorno aos interessados no processo. Todo este
mapeamento constitui uma importante base de conhecimento sobre o negócio da empresa. À
medida que um problema é cadastrado, verificado e solucionado, o mesmo pode ser
classificado e transferido para formação de uma base de dados sobre os problemas mais
comuns e suas respectivas soluções (LIMA et al., 2004 apud FERNANDES et al., 2010).
O CBR-Answers é um sistema utilizado para suporte por telefone e outras
aplicações de help desk. A ideia principal consiste em analisar os documentos existentes em
uma base FAQ, de modo que a consulta feita pelo usuário identifique os documentos mais
similares relacionados à consulta. Os documentos existentes são utilizados e analisados pelo
56
sistema que converte o documento textual em uma estrutura no formato de um caso. Este
processo é feito de modo automático, ou seja, nenhum caso é criado de forma manual (DE
SÁ, 2007 apud FERNANDES et al., 2010).
Um exemplo de RBC Textual é o FAQFinder, um sistema que é capaz de
responder perguntas realizadas em linguagem natural (em inglês). O FAQFinder realiza uma
combinação de técnicas de RBC com técnicas de recuperação de informação e processamento
de linguagem natural para a recuperação de documentos. Ele foi projetado como um sistema
genérico para recuperar FAQs sem se focar em um domínio específico. Para isto, executa um
processo em dois passos. No primeiro, ele realiza uma análise superficial sobre as palavraschave contidas na consulta para determinar quais são os casos que possuem uma maior
relação com ela. Em seguida, ele realiza uma análise mais aprofundada nestes casos
selecionados para determinar quais são as perguntas que serão retornadas ao usuário como
resposta (BURKE et al., apud FERNANDES et al., 2010).
Outro exemplo são os robôs de FAQ, conhecidos como FAQBots. Estes softwares
são encarregados de responder a perguntas dos usuários sobre o assunto contido na sua base
de FAQ. Este software consegue conversar com o usuário sobre o seu domínio, mas assume
ignorância quando questionado sobre assuntos fora do seu conhecimento. A seleção de
respostas é feita através de casamento de padrões: palavras-chave selecionadas a partir de
cada questão são comparadas a uma lista interna de combinações de chaves que indexam as
respostas (LAUREANO, 1999 apud FERNANDES et al., 2010).
2.3.5 Mapa das Técnicas de RBC Utilizadas
O mapa mostrado a seguir, resume todos os tipos, métodos e técnicas empregadas
no modelo de RBC do sistema proposto.
Itens
Técnica/Tipo/Modelo
Raciocínio Baseado em Casos
Textual
Representação do conhecimento
Contexto Levemente Textual
Documento = Caso
57
Recuperação
1
Ciclo
RBC
Sequencial
Recuperação de Informação
Modelo Vetorial
Pré-processamento de Texto
Eliminação de Stopwords
Recurso de Pesquisa
Dicionário de Sinônimos
2
Reutilização/Adaptação
Adaptação Nula
3
Revisão
Manual
Retenção
Manual
Retenção de Solução de Problemas /
Retenção de Documentos
4
Quadro 2 - Mapa das técnicas de RBC utilizadas
Fonte: Elaboração do autor, 2011.
O Quadro 2 apresenta a sequência de elementos respeitando o ciclo do Raciocínio Baseado
em Casos.
2.4
CONSIDERAÇÕES
A seção Sistemas Especialistas apresentada, elucida uma série de pontos que são
essenciais para a compreensão do assunto, servindo como uma pré-introdução ao tema
Raciocínio Baseado em Casos.
É importante salientar que algumas características dos SEs que foram abordados
como principalmente base de regras, dinamismo de interfaces e autoaprendizagem com
geração de novas regras, não estão presentes no sistema que é proposto, visto que tais
características são comuns aos SEs estruturados, diferente do protótipo apresentado que
utiliza Raciocínio Baseado em Casos Textual.
58
3
MÉTODO
Segundo Garcia (1998, p. 44), “Metodologia significa, etimologicamente, o
estudo dos caminhos, dos instrumentos usados para se fazer pesquisa científica, os quais
respondem o como fazê-la de forma eficiente.”.
Este capítulo apresenta os itens que constituem o método de pesquisa adotado
bem como sua caracterização, etapas, a proposta da solução e as delimitações do projeto.
3.1
CARACTERIZAÇÃO DO TIPO DE PESQUISA
O presente trabalho utiliza a pesquisa aplicada que segundo Silva e Menezes
(2005), “objetiva gerar conhecimentos para aplicação prática e dirigi-los à solução de
problemas específicos [...]”.
Quanto aos procedimentos técnicos, é utilizada a pesquisa bibliográfica.
Conforme Motta e Leonel (2007, p. 112), pesquisa bibliográfica “É aquela que se desenvolve
tentando explicar um problema a partir das teorias já publicadas em diversos tipos de fontes
[...]”. Com base em Koche (1997, p. 122 apud MOTTA; LEONEL, 2007, p. 113), alguns dos
objetivos a se alcançar com a pesquisa bibliográfica são: a) ampliar o grau de conhecimento
em uma determinada área, capacitando o investigador a compreender ou delimitar melhor um
problema de pesquisa; b) dominar o conhecimento disponível e utilizá-lo como base ou
fundamentação na construção de um modelo teórico explicativo de um problema.
Para o presente trabalho, das principais fontes de pesquisa utilizadas estão: livros
de autores e Dissertações, Trabalhos de Conclusão de Curso, artigos e manuais publicados na
internet.
O tipo de abordagem adotado na pesquisa e de natureza qualitativa. Conforme
Motta e Leonel (2007, p. 112), “O principal objetivo da pesquisa qualitativa é o de conhecer
as percepções dos sujeitos pesquisados acerca da situação-problema, objeto da investigação.”.
Como técnica de coleta de dados, é aplicado um questionário de perguntas
fechadas a um número limitado de entrevistados que na qualidade de usuários testaram o
protótipo.
59
3.2
ETAPAS
O processo de pesquisa e elaboração deste trabalho organiza-se de acordo com as
seguintes etapas:
1) Definição do problema e proposta da solução;
2) Pesquisa e estudo das tecnologias existentes;
3) Revisão bibliográfica;
4) Modelagem do sistema;
5) Desenvolvimento do protótipo do sistema;
6) Testes e avaliação.
3.3
PROPOSTA DA SOLUÇÃO
Desenvolvimento de um sistema para help desk que utiliza a técnica de Raciocínio
Baseado em Casos (RBC).
O sistema é uma aplicação web desenvolvida inicialmente para intranet podendo
futuramente ser adaptada para internet. O público alvo a quem se destina a solução proposta
são organizações de pequeno a grande porte que possuem redes locais de computadores.
Um dos principais objetivos da solução é reduzir o volume de chamados de help
desk endereçados a equipe de especialistas. Para isso, a aplicação conta com um recurso de
autoatendimento que e exerce o papel de atendimento nível zero.
O recurso de autoatendimento provê um motor de busca implementado sob os
padrões do modelo de recuperação de informação Vetorial, como sendo a principal ferramenta
utilizada pelos usuários no processo de busca de soluções para dúvidas e questões, neste caso,
relacionadas à informática, embora aceite qualquer domínio de conhecimento.
Caso a solução do problema não seja encontrada via autoatendimento, o sistema
dá condições ao usuário para abrir um chamado através dos recursos normais de um sistema
de help desk convencional ou também enviar sua dúvida a um especialista que de forma
assíncrona poderá respondê-la e publicá-la como um novo caso.
60
A proposta da solução apresentada pode ser verificada com mais detalhes através dos passos
que são vistos a seguir:
1) Sempre que os usuários acessarem o sistema, a primeira tela a ser exibida é a de
autoatendimento. A intenção inicial com isso é estabelecer a cultura de uso frequente
desta ferramenta e motivar os usuários a sempre buscar a solução de problemas através da
base de conhecimento;
2) Na tela de autoatendimento é disponibilizado um painel de pesquisa simples que utiliza o
motor de busca onde o usuário poderá informar o seu questionamento digitando uma
pergunta em linguagem natural para o sistema como, por exemplo, “como faço para
configurar uma conta de e-mail?” ou “como imprimir frente e verso na impressora x?”.
Assim que a questão é informada, basta que o usuário execute a busca;
3) Através dos mecanismos de RBC já vistos no capítulo anterior, o sistema tentará
recuperar os casos mais similares ao problema colocado pelo usuário. Por definição,
serão apresentados até cinco casos no máximo. Como a base de casos é uma lista de
FAQ, o sistema apresentará os casos recuperados como perguntas (sem a descrição da
respectiva resposta), similares à questão do usuário. Cada FAQ mostrada na tela possui
um hyperlink onde o usuário poderá clicar e assim visualizar a resposta em uma tela
separada;
4) Caso alguma das soluções apresentadas pelo sistema satisfaça o atual problema, o usuário
poderá adotar o caso escolhido como solução;
5) Caso o sistema não tenha retornado resultados ou nenhuma das soluções recuperadas
satisfaz o atual problema, o usuário terá duas opções, ou ambas se preferir:
a) Criar um chamado de help desk normalmente e aguardar a solução por parte dos
analistas de suporte;
b) Postar sua questão que não foi respondida via autoatendimento ao Help Desk para
que possa se tornar uma nova FAQ como sendo um novo caso da base de
conhecimento. Para que isto seja possível, é disponibilizado na tela de busca de
soluções o botão “Postar Dúvida” que direciona a um formulário onde o usuário pode
informar sua questão juntamente com descrições complementares (Ver seção 5.3.2
Busca da Solução e Retenção de Novos Casos).
61
6) Todas as dúvidas postadas são armazenadas em uma lista de questões pendentes que
ficam a cargo do Engenheiro do Conhecimento avaliar e julgar a sua retenção ou não na
base de casos;
7) Caso o Engenheiro do Conhecimento julgue ser útil criar um novo caso a partir de uma
questão postada, duas alternativas poderão ser adotadas:
a) Existindo algum caso semelhante na base que possa ser reutilizado, o novo caso
poderá ser gerado a partir deste através do recurso “Salvar Como”, disponibilizado
no formulário de FAQ e do recurso “Salvar Como FAQ”, disponibilizado no
formulário de questões. Assim que o caso (FAQ) é criado, as demais etapas de
adaptação, revisão e retenção poderão ser cumpridas;
b) Não existindo casos ou chamados semelhantes, o novo caso terá que ser criado do
zero.
O processo descrito pode ser verificado visualmente através do fluxograma a seguir.
62
Figura 7 - Fluxograma: Proposta da solução
Fonte: Elaboração do autor, 2011.
63
A Figura 7 mostrada apresenta o fluxo do processo de autoatendimento e retenção de novos
casos.
3.4
DELIMITAÇÕES DO PROJETO
3.4.1 Requisitos do Sistema
Com relação a determinados recursos que são esperados e que devem ser
atendidos como sendo requisitos comuns de um sistema de help desk, optou-se por não
contemplá-los neste trabalho em razão dos objetivos da proposta, limitando-se apenas aos
principais recursos que atendem aos requisitos necessários para apresentação da solução e da
ideia.
Dos recursos que não fazem parte dos requisitos cumpridos estão: Notificação por e-mail,
Relatórios Gerenciais e Manual de Ajuda.
3.4.2
Base de Conhecimento
Um sistema de RBC como sendo um Sistema Baseado em Conhecimento possui
uma base de casos que é construída inicialmente a partir do conhecimento que um especialista
humano tem sobre um domínio. Este domínio especialista é captado pelo Engenheiro do
Conhecimento por meio de entrevistas que visam documentar e converter experiências
práticas em casos que irão fazer parte da base de conhecimento.
A entrevista como sendo um instrumento de coleta de dados e aqui perfeitamente
aplicável, por escolha, não foi utilizada neste estudo. Em substituição a base de conhecimento
convencional inicial, obtida como já dito por entrevista, utilizou-se uma lista de FAQ do
domínio de help desk, que representa satisfatoriamente a base de conhecimento onde cada
FAQ individual (pergunta e resposta) representa um caso do SE (problema e solução).
64
4
MODELAGEM
Este capítulo apresenta os seguintes assuntos inerentes à construção do sistema
proposto: introdução à modelagem, a linguagem gráfica UML e a especificação do sistema no
que compreende os requisitos funcionais, requisitos não funcionais, regras de negócio, atores,
casos de uso, diagrama de classes e a modelagem de dados.
4.1
INTRODUÇÃO
Segundo Ramos (2006, p. 21), “Definimos um modelo como a interpretação de
um dado domínio do problema de acordo com uma determinada estrutura de conhecimento.”.
Um modelo pode ser especificado através de esquemas por meio de uma
determinada linguagem, representada de forma textual ou gráfica. Quando a representação do
esquema é realizada de forma gráfica, usualmente são utilizados diagramas (RAMOS, 2006).
Dentre os principais benefícios da modelagem podemos citar (RAMOS, 2006):

Ajudam a visualizar um sistema em sua situação passada, presente e futura;

Permite especificar a estrutura ou o comportamento de um sistema;

Permite guiar e controlar o processo de construção de um sistema;

Permite a documentação das decisões tomadas.
A escolha dos modelos tem profunda influência no modo como o problema
interpretado e como a solução é obtida. Um modelo adequado ilustra de forma correta
determinados aspectos da construção de um sistema, oferecendo uma simplificação dos
procedimentos envolvidos. Por fim, “[...] nenhum modelo é auto-suficiente. Qualquer sistema
não-trivial é representado de forma mais adequada por meio de um pequeno número de
modelos, razoavelmente independentes.” (RAMOS, 2006, p. 24).
65
4.2
UML
Segundo Fowler (2005, p. 25), “UML (Unified Modeling Language), é uma
família de notações gráficas, apoiada por um metamodelo único, que ajuda na descrição e no
projeto de sistemas de software, particularmente daqueles construídos utilizando o estilo
orientado a objetos (OO).”.
A UML é um padrão de linguagem relativamente aberto, controlado pelo OMG
(Object Managment Group), um consórcio aberto de empresas. É o resultado da unificação de
muitas linguagens gráficas de modelagem orientadas a objetos que surgiram no final dos anos
80 (FOWLER, 2005).
Uma das vantagens da UML é utilizá-la como ferramenta de esboço na
comunicação com a equipe do projeto, tendo como objetivo transmitir as ideias e alternativas
sobre o que se quer fazer de forma mais fácil. Deste modo, detalhes do código que será escrito
não são falados, mas apenas as questões importantes antes de se iniciar a programação
(FOWLER, 2005).
A UML versão 2.0 descreve 13 tipos de diagramas oficiais que são: diagrama de
atividades, diagrama de classes, diagrama de comunicação, diagrama de componentes,
diagrama de estruturas compostas, diagrama de distribuição, diagrama de visão geral da
interação, diagrama de objetivos, diagrama de pacotes, diagrama de sequência, diagrama de
máquinas de estado, diagrama de sincronismo e diagrama de casos de uso (FOWLER, 2005).
Para a modelagem do protótipo apresentado neste trabalho, são utilizados o
diagrama de casos de uso e o diagrama de classes que serão vistos neste capítulo.
4.3
ESPECIFICAÇÃO DO SISTEMA
Nesta seção são apresentados os itens da modelagem que constituem a
especificação do sistema proposto.
66
4.3.1 Requisitos Funcionais
Requisitos funcionais são aqueles que definem o comportamento do sistema,
capturados a partir dos casos de uso, que documentam as entradas, os processos e as saídas
geradas (MARTINS, 2007).
Para o sistema proposto, foram identificados 20 requisitos funcionais principais como é
listado no quadro a seguir.
Índice Título
RF01
Identificação do usuário corrente
RF02
Criação de conta de acesso
RF03
Gerenciamento de chamados
RF04
Criação/Edição/Visualização de chamados
RF05
Histórico de interações do chamado
RF06
Anexos do chamado
RF07
Motor de busca
RF08
Envio de dúvidas
RF09
FAQ
RF10
Pesquisa avançada de chamados
RF11
Gerenciamento de usuários
RF12
Perfis de usuário
RF13
Criação/Edição de contas de usuário
RF14
Gerenciamento de FAQs
RF15
Criação/Edição de FAQs
RF16
Gerenciamento de Questões
RF17
Edição de questões
RF18
Gerenciamento do dicionário de sinônimos
RF19
Gerenciamento da lista de termos ignorados
RF20
Gerenciamento dos campos globais
Quadro 3 - Requisitos Funcionais
Fonte: Elaboração do autor, 2011.
67
A definição de grande parte dos requisitos espelhou-se no atual sistema utilizado
pela empresa do estudo de caso e em alguns softwares existentes no mercado como mySuite
da BraZip Tecnologia e SysAid da SysAid Technologies.
A descrição detalhada de cada requisito pode ser verificada no apêndice B.
4.3.2 Requisitos Não Funcionais
Requisitos não funcionais são constituídos por características não necessariamente
associadas ao comportamento como, por exemplo: usabilidade (facilidade de utilização,
aspectos visuais, documentação e material de treinamento), confiabilidade (robustez, proteção
contra falhas, recuperação em caso de erro e precisão), performance (disponibilidade, bom
tempo de resposta, baixo uso de memória, outros) e suporte (facilidade de se manter o sistema
em produção) (MARTINS, 2007).
Para o sistema proposto, foram identificados 3 requisitos não funcionais principais dos tipos
usabilidade e performance, como é listado no quadro a seguir.
Índice
Título
RNF01 Interface do sistema
RNF02 Aparência da interface
RNF03 Desempenho do sistema
Quadro 4 - Requisitos Não Funcionais
Fonte: Elaboração do autor, 2011.
A descrição detalhada de cada requisito pode ser verificada no apêndice C.
68
4.3.3 Regras de Negócio
As regras de negócio determinam como o negócio em uma organização deve
operar, mantendo a estrutura do negócio, controlando ou influenciando algum aspecto do
negócio (BRG, 2000 apud MORGADO et al., 2007). Sob o ponto de vista do
desenvolvimento de software, as regras de negócio podem ser consideradas como requisitos
de um projeto, pois deverão ser implementadas nos sistemas computacionais que dão suporte
às operações
de um
negócio. Desta
forma, a abordagem ao desenvolvimento
de software baseada em regras de negócio consiste basicamente em tratá-las como requisito
prioritário (LEITE; LEONARDI, 1998 apud MORGADO et al., 2007).
Para o sistema proposto, foram identificadas 8 regras de negócio principais como é listado no
quadro a seguir.
Índice Título
RN01
Acesso ao sistema
RN02
Controle de acesso
RN03
Forma de atendimento
RN04
Pesquisa avançada de chamados
RN05
Gerenciamento de chamados
RN06
Gerenciamento de contas de usuários
RN07
Gerenciamento da base de conhecimento
RN08
Gerenciamento das configurações
Quadro 5 - Regras de Negócio
Fonte: Elaboração do autor, 2011.
A descrição detalhada de cada regra pode ser verificada no apêndice D.
69
4.3.4 Atores
O domínio de uma aplicação é constituído por atores que representam papéis.
Entende-se Ator como um agente que interage com o sistema como sendo um usuário ou
categoria com papel definido, podendo se tratar de pessoas, máquinas, dispositivos ou
sistemas. Embora os elementos gráficos utilizados nos diagramas simbolizem pessoas, atores
não precisam obrigatoriamente sê-las (FURTADO, 2002).
É importante ressaltar que um ator representa um papel, e não um usuário
individual do sistema de modo que um ator pode representar muitos papeis e um papel pode
ser representado por muitos atores (FURTADO, 2002).
Para o sistema proposto, foram identificados 4 atores que são: o solicitante, o suporte, o
administrador e o analista RBC.

Solicitante: Funcionários da organização que utilizam o sistema para buscar soluções
ou criar chamados relativos a problemas ou necessidades ligadas a TI;

Suporte: Analistas de suporte que utilizam o sistema como ferramenta de controle e
gerenciamento dos chamados;

Administrador: Geralmente analistas de suporte ou pessoa responsável que utilizam o
sistema como ferramenta de controle e gerenciamento dos chamados e também
efetuam manutenções e configurações de software que exijam um nível de permissão
mais elevado podendo atuar como Analista RBC;

Analista RBC: Geralmente Engenheiros do Conhecimento ou pessoa responsável pela
manutenção e o gerenciamento da base de casos, do dicionário de sinônimos e da lista
de stopwords.
70
uc Atores
Solicitante
Suporte
Administrador
Analista RBC
Figura 8 - Atores
Fonte: Elaboração do autor, 2011.
A Figura 8 identifica os atores do sistema através da notação gráfica UML.
4.3.5 Casos de Uso
De acordo com a notação UML, um caso de uso é formalmente definido como o
conjunto de sequências de ações que um sistema desempenha para produzir um resultado
observável de valor a um ator específico (JACOBSON, 1992 apud FURTADO, 2002).
A modelagem de casos de uso é uma técnica usada para descrever as
funcionalidades de um sistema através de atores que interagem. Atores representam papeis e
iniciam casos de uso que por sua vez, devem retornar resultados a estes atores. O caso de uso
descreve o comportamento do sistema sob diversas condições conforme este responde a uma
requisição de um ator, chamado de ator primário. O ator primário inicia uma interação com o
sistema para atingir algum objetivo. O sistema responde, protegendo os interesses de outros
atores onde diferentes comportamentos ou cenários podem surgir conforme as requisições que
são feitas e as condições que as cercam (COCKBURN, 2001).
Quanto à representação, os casos de uso são fundamentalmente textuais embora
possam ser escritos utilizando fluxogramas ou diagramas. Usualmente servem como um meio
de comunicação entre as pessoas envolvidas no projeto (COCKBURN, 2001).
“O principal diagrama utilizado em UML é o diagrama de casos de uso. Ele
fornece um modo de descrever a visão externa de um sistema de informações e suas
interações com o mundo, representando uma visão de alto nível de funcionalidade.”
(FURLAN, 1998 apud FURTADO, 2002).
71
Para o sistema proposto, foram identificados 34 casos de uso principais como é listado no
quadro a seguir.
Índice Título
CU01
Criar conta de acesso
CU02
Criar chamado
CU03
Visualizar chamado
CU04
Editar chamado
CU05
Excluir chamado
CU06
Inserir anexo
CU07
Excluir anexo
CU08
Pesquisar chamados
CU09
Pesquisar FAQs
CU10
Visualizar FAQ
CU11
Pesquisar casos similares
CU12
Visualizar caso similar
CU13
Postar dúvida
CU14
Editar questão
CU15
Salvar questão como FAQ
CU16
Excluir questão
CU17
Criar caso
CU18
Editar caso
CU19
Excluir caso
CU20
Inserir palavra
CU21
Editar palavra
CU22
Excluir palavra
CU23
Inserir sinônimo
CU24
Editar sinônimo
CU25
Excluir sinônimo
CU26
Inserir termo ignorado
CU27
Editar termo ignorado
CU28
Excluir termo ignorado
CU29
Criar conta de usuário
72
CU30
Editar conta de usuário
CU31
Excluir conta de usuário
CU32
Inserir opção em campo global
CU33
Editar opção em campo global
CU34
Excluir opção em campo global
Quadro 6 - Casos de Uso
Fonte: Elaboração do autor, 2011.
A descrição detalhada de cada caso de uso pode ser verificada no apêndice E.
4.3.5.1 Diagrama de Casos de Uso do Solicitante
Os principais casos de uso relacionados ao ator Solicitante são apresentados
através do diagrama a seguir.
73
uc Solicitante
CU13 - Postar dúv ida
«extend»
CU11 - Pesquisar
casos similares
«extend»
CU12 - Visualiar caso
similar
CU07 - Excluir anexo
CU02 - Criar chamado
«extend»
«extend»
CU01 - Criar conta de
acesso
CU06 - Inserir anexo
Solicitante
«extend»
CU03 - Visualizar
chamado
CU04 - Editar chamado
«extend»
«extend»
CU08 - Pesquisar
chamados
CU09 - Pesquisar FAQs
CU10 - Visualizar FAQ
«extend»
Figura 9 - Diagrama de Casos de Uso (Solicitante)
Fonte: Elaboração do autor, 2011.
74
4.3.5.2 Diagrama de Casos de Uso do Suporte
Os principais casos de uso relacionados ao ator Suporte são apresentados através
do diagrama a seguir.
uc Suporte
CU31 - Excluir conta de
usuário
CU30 - Editar conta de
usuário
«extend»
CU29 - Criar conta de
usuário
CU05 - Excluir
chamado
CU02 - Criar chamado
CU06 - Inserir anexo
«extend»
Suporte
«extend»
CU03 - Visualizar
chamado
«extend»
CU08 - Pesquisar
chamados
Figura 10 - Diagrama de Casos de Uso (Suporte)
Fonte: Elaboração do autor, 2011.
CU04 - Editar chamado
«extend»
75
4.3.5.3 Diagrama de Casos de Uso do Analista RBC
Os principais casos de uso relacionados ao ator Analista RBC são apresentados
através do diagrama a seguir.
uc Analista RBC
CU14 - Editar questão
«extend»
CU15 - Salv ar
questão como FAQ
«extend»
CU16 - Excluir
questão
CU18 - Editar caso
«extend»
CU17 - Criar caso
CU19 - Excluir caso
Analista RBC
CU20 - Inserir
palav ra
CU21 - Editar palav ra
«extend»
CU23 - Inserir
sinônimo
CU24 - Editar
sinônimo
CU26 - Inserir termo
ignorado
CU27 - Editar termo
ignorado
Figura 11 - Diagrama de Casos de Uso (Analista RBC)
Fonte: Elaboração do autor, 2011.
«extend»
«extend»
CU22 - Excluir
palav ra
CU25 - Excluir
sinônimo
CU28 - Excluir termo
ignorado
76
4.3.5.4 Diagrama de Casos de Uso do Administrador
Os principais casos de uso relacionados ao ator Administrador são apresentados
através do diagrama a seguir.
uc Administrador
CU30 - Editar conta de
usuário
«extend»
CU31 - Excluir conta de
usuário
CU29 - Criar conta de
usuário
Administrador
CU32 - Inserir opção
em campo global
CU33 - Editar opção em
campo global
«extend»
CU34 - Excluir opção
em campo global
Figura 12 - Diagrama de Casos de Uso (Administrador)
Fonte: Elaboração do autor, 2011.
4.3.6 Diagrama de Classes
Antes de abordar diretamente este tópico conforme a terminologia da UML é
necessário explanar alguns conceitos que estão fortemente ligados e que fundamentam o
presente assunto.
77
A Programação Orientada a Objetos (POO) é uma técnica utilizada para
construção de sistemas computacionais e que imita o modo como os objetos são construídos
no mundo físico (CADENHEAD; LEMAY, 2005).
Na POO, um programa de computador pode ser entendido como um grupo de
objetos que trabalham em conjunto para realizar tarefas definidas. Cada objeto é parte
separada do sistema e interage com outras partes, atendendo propósitos específicos de forma
controlada (CADENHEAD; LEMAY, 2005).
Conforme Leite (2006), a POO tem dois objetivos fundamentais que são: a
reutilização de códigos já prontos e depurados e a modularização da escrita sendo esta última
alcançada com a definição da unidade fundamental da tecnologia, ou seja, o objeto. Desta
forma, através destes dois recursos é possível reduzir os custos de desenvolvimento e
manutenção.
Contudo, a capacidade de manipular objetos é apenas um aspecto da POO. Outra
característica importante é o uso de classes.
Quando características e operações similares em objetos distintos são
identificadas, é possível realizar sua classificação, ou seja, identificar classes (MELO, 2010).
De acordo Melo (2010), “Uma classe é a representação de um conjunto de objetos
que compartilham a mesma estrutura de atributos, operações e relacionamentos, dentro de um
mesmo contexto [...]”. Uma classe especifica a estrutura de um objeto sem informar quais
serão seus valores. Por outro lado, um objeto representa a ocorrência (instância) de uma classe
em um determinado momento (MELO, 2010).
Por fim, um diagrama de classes representa de forma gráfica e descreve os tipos
de objetos presentes no sistema e os vários tipos de relacionamentos entre eles. Além de o
diagrama de classes demonstrar as propriedades e operações de uma classe, ele pode
identificar as restrições que se aplicam conforme os objetos estão conectados (FOWLER,
2005).
Para facilitar a compreensão do modelo lógico da estrutura de classes que é
representado pelo diagrama de classes utilizado na modelagem do sistema proposto, é
demonstrado a seguir na Figura 13 o modelo conceitual mais simplificado da estrutura de
classes.
78
Interface do Usuário
Controle de Acesso
Motor de Busca
Acesso a Dados
Figura 13 - Modelo conceitual da estrutura de classes do sistema
Fonte: Elaboração do autor, 2011.
No modelo conceitual mostrado acima, cada retângulo identificado é um conjunto de classes
ou na terminologia UML, pacote.
Para o sistema proposto, o diagrama de classes pode ser verificado na Figura 14 a
seguir. Seguindo a estrutura do modelo conceitual mostrado na figura anterior, o diagrama é
representado em camadas de forma descendente na sequência: Interface do Usuário, Controle
de Acesso e Motor de Busca, e Acesso a Dados.
79
Neste diagrama é possível verificar as principais classes da interface do sistema sendo que
cada classe mostrada está vinculada a uma tela (página web) da aplicação.
Interface do Usuário
(Continua na próxima página)
80
Controle de Acesso
Motor de Busca
(Continua na próxima página)
81
Acesso a Dados
Figura 14 - Diagrama de classes
Fonte: Elaboração do autor, 2011.
É possível verificar a lista de métodos utilizados em cada classe representada no
diagrama da Figura 14. As setas pontilhadas representam as associações entre as classes de
cada pacote.
82
4.3.7 Modelagem de Dados
Conforme o IIBA (2011, p. 169), “O propósito de um modelo de dados é
descrever os conceitos relevantes de um domínio, os relacionamentos entre esses conceitos e
as informações associadas a eles.”.
Um Modelo de Dados (MD) geralmente é representado através de um diagrama,
apoiado por descrições textuais explicativas. Um MD representa de forma visual os vários
tipos de objetos, conceitos ou coisas que são importantes dentro do domínio da aplicação
além de seus atributos e inter-relacionamentos (IIBA, 2011).
4.3.7.1 Diagrama Entidade-Relacionamento
Enquanto os diagramas de classes são preferidos para apoiar o desenvolvimento
orientado a objetos, geralmente os Diagramas de Entidade-Relacionamento (DER) são os
mais utilizados quando o modelo de dados for utilizado como base para um banco de dados
relacional (IIBA, 2011).
Um modelo lógico de dados de alto nível descreve as informações relevantes do
domínio da aplicação e pode focar somente nas descrições das entidades, atributos e
relacionamentos mais importantes enquanto que modelos lógicos mais detalhados focam nas
descrições que abrangem todas as entidades, atributos e relacionamentos (IIBA, 2011).
Para o sistema proposto, o modelo lógico pode ser verificado na Figura 15 a seguir.
83
Questions
FAQ
DictionaryWords
ID
ID
ID
Q uestion
Q uestion
Word
C ategory _ID
Description
A nsw er
S tatus
FAQCategories
StopWords
ID
ID
C ategory
Word
DictionarySynonyms
ID
Word_ID
Sy nony m
Users
Requests
RequestCategories
ID
ID
ID
F ullN ame
Title
C ategory
U serN ame
DescriptionHistory
P hone
DeadlineDate
M ail
ResolutionDate
Department_ID
C reated
IsS upport
M odified
IsC BRA naly st
IsDone
IsA dministrator
Requestor_ID
Attachments
C ategory _ID
ID
P riority _ID
Request_ID
S ponsor_ID
F ileN ame
S tatus_ID
C ontentTy pe
Data
Departments
ID
Department
Priorities
Status
ID
ID
P riority
Status
Figura 15 - Diagrama Entidade-Relacionamento
Fonte: Elaboração do autor, 2011.
84
Para o DER mostrado na figura anterior, entende-se como entidades: as tabelas do
banco de dados do sistema que são representadas pelos retângulos, e atributos: os campos que
são listados dentro de cada tabela.
85
5
DESENVOLVIMENTO
Neste capítulo é apresentado o desenvolvimento do sistema proposto no que
compreende as principais tecnologias e ferramentas utilizadas demonstrando também o
histórico do que foi realizado na prática desde a modelagem até a implementação do código
de programação.
Na sequência é dada a apresentação do sistema onde são demonstradas todas as
principais telas que compõem a interface gráfica e a descrição dos recursos de cada uma.
Por fim, com o intuito de comprovar a eficiência do propósito que a solução se
destina, é descrito o processo de avaliação utilizado bem como os resultados obtidos.
5.1
TECNOLOGIAS E FERRAMENTAS UTILIZADAS
O critério de escolha das tecnologias e ferramentas utilizadas para o
desenvolvimento da solução proposta levou em consideração alguns aspectos importantes
julgados sob o ponto de vista do autor:

Familiaridade: Algumas das tecnologias que serão vistas a seguir já são conhecidas
do autor que as utiliza também em outros projetos;

Integração: A maioria das tecnologias e ferramentas escolhidas são produtos da
mesma empresa que os fornece e foram projetadas para trabalhar de forma integrada,
principalmente sob o ponto de vista do desenvolvimento;

Agilidade: O ambiente de desenvolvimento é altamente produtivo;

Suporte: É bastante vasta a documentação técnica no que inclui livros, tutoriais,
websites, fóruns, vídeos, etc. e dificilmente você ficará sem resposta frente a algum
problema ou dúvida.
86
Figura 16 - Tecnologias e ferramentas utilizadas
Fonte: Elaboração do autor, 2011.
A Figura 16 ilustra as marcas das tecnologias e ferramentas utilizadas na solução,
das quais serão brevemente apresentadas a seguir.
5.1.1 .NET Framework
Com um modelo baseado no conceito de máquina virtual conhecido como CLR
(Common Language Runtime), o .NET Framework criado pela Microsoft, mudou a forma com
que as aplicações são desenvolvidas para a plataforma Windows, sendo que não mais se
desenvolve para a plataforma Windows e sim para o .NET. Desta forma uma aplicação
baseada em .NET roda em qualquer plataforma que possua a máquina virtual .NET
Framework (SPAKI et al., 2008).
O .NET Framework é baseado em um modelo totalmente orientado a objetos e
integrado com as novas tecnologias do mercado. Ele possui o conceito de CTS (Common
87
Type System), permitindo a utilização de diversas linguagens de programação, de forma que
qualquer que seja a linguagem escolhida, o código compilado irá gerar um aplicativo para a
plataforma .NET com as mesmas características. Para desenvolver nesta plataforma é
necessário utilizar linguagens como Visual Basic, C#, Visual C++, Visual J#, Perl, COBOL e
outras (SPAKI et al., 2008).
Para o sistema proposto, o .NET Framework utilizado é o de versão 4.0.
5.1.2 ASP.NET
O ASP.NET é uma nova versão do ASP clássico (Active Server Pages), utilizado
para o desenvolvimento de aplicações web e baseado nos princípios da orientação a objetos
tendo o amplo suporte do .NET Framework (SPAKI et al., 2008).
O principal objetivo do ASP.NET é tornar o desenvolvimento de aplicações web
mais simples e ágil, ou seja, um modelo de programação orientado a eventos no qual os
programadores adicionam controles aos formulários e escrevem códigos para manipular esses
eventos associados a esses controles. Aplicativos construídos com ASP.NET são hospedados
no servidor web IIS (Internet Information Services) e usam protocolos como por exemplo,
HTTP (HyperText Transfer Protocol) e SOAP (Simple Object Access Protocol) (ARAÚJO,
2007).
5.1.3 C#
A linguagem de programação C# (pronuncia-se C Sharp) foi criada por Anders
Hejlsberg (criador do Turbo Pascal e arquiteto do Delphi), Scott Wiltamuth e Peter Gold em
1999. A C# é uma linguagem orientada a objetos simples e moderna derivando-se do C e C++
possuindo muitas similaridades sintáticas com a linguagem Java (ARAÚJO, 2007). Além de
herdar muitas características da linguagem C++, a C# possui uma sintaxe relativamente fácil e
de aprendizado rápido.
88
Devido a sua forte integração com a plataforma .NET Framework, a linguagem
C# é ideal para o desenvolvimento de aplicações web com ASP.NET (ARAÚJO, 2007).
5.1.4 IIS (Internet Information Services)
O IIS (Internet Information Services) é um servidor web criado pela Microsoft.
Um servidor web é um software que responde requisições HTTP do navegador de páginas da
internet, desta forma é considerado um servidor de ficheiros. Por outro lado, como pode
hospedar programas e fornecer resultados destes programas, é considerado também um
servidor de aplicações (COSTA, 2007). Desta forma o IIS permite hospedar aplicações em
ASP e ASP.NET para gerar conteúdo web dinâmico (ARAÚJO, 2007).
Para o sistema proposto, o IIS utilizado é o de versão 7.5.
5.1.5 SQL Server
O SQL Server da Microsoft é um banco de dados relacional destinado a suportar
aplicações com arquitetura cliente/servidor. Para o sistema proposto foi utilizada a versão
gratuita SQL Server 2005 Express Edition (SQLEXP).
O SQLEXP além de gratuito é uma versão leve e de fácil utilização que agiliza o
desenvolvimento e a implantação de aplicativos dinâmicos controlados por dados. Este banco
de dados oferece ferramentas avançadas e confiáveis de gerenciamento de dados com recursos
sofisticados, proteção de dados e bom desempenho. É indicado para aplicativos leves da web,
clientes de aplicativos incorporados e armazenamento de dados local. O SQLEXP foi
desenvolvido para ser de fácil implantação e criação de protótipos de forma rápida
(MICROSOFT, 2007).
89
5.1.6 SQL Server Management Studio Express
O SQL Server Management Studio Express (SSMSE) é a interface de
gerenciamento dos recursos do banco de dados SQL Server. Esta ferramenta desenvolvida
pela Microsoft é um ambiente de desenvolvimento integrado utilizado para acessar,
configurar, gerenciar e desenvolver todos os componentes do SQL Server. Através desta
interface, a criação e manipulação de bancos de dados em toda sua extensão se torna muito
mais rápida e fácil. O SSMSE combina um amplo grupo de ferramentas gráficas com editores
sofisticados que fornecem acesso ao SQL Server a desenvolvedores e administradores de
todos os níveis de experiência (MICROSOFT, 2009).
5.1.7 Visual Studio
O Visual Studio é um ambiente de desenvolvimento integrado ou IDE (Integrated
Development Environment) que reúne uma série de recursos e ferramentas para o
desenvolvimento de aplicações sobre a plataforma .NET Framework tanto para desktop, web
ou dispositivos móveis (MICROSOFT, 2010).
Para o sistema proposto, o Visual Studio utilizado é o de versão 2010.
5.1.8 jQuery
jQuery é uma biblioteca (ou API - Application Programming Interface) gratuita
de funções JavaScript criada por John Resig e disponibilizada como software livre e aberto. O
principal objetivo do jQuery é fornecer meios mais simplificados para interagir com o código
HTML (HyperText Markup Language) das páginas de websites através da linguagem
JavaScript, tendo como foco a redução da utilização de código (SILVA, 2008).
90
Conforme Silva (2008), a jQuery é usada para adicionar efeitos visuais e
animações, prover interatividade alterando o conteúdo de páginas e simplificar tarefas
específicas de JavaScript.
Para o sistema proposto, o jQuery utilizado é o de versão 1.4.1.
5.2
HISTÓRICO DO DESENVOLVIMENTO
O processo de desenvolvimento do sistema de help desk passou por algumas
etapas principais como: a modelagem do sistema, a modelagem de dados, a construção da
interface e a implementação do código de programação.
Cada uma das etapas citadas é vista com mais detalhes a seguir:
Modelagem do Sistema: Durante a modelagem do sistema foram definidos os requisitos
funcionais e os casos de uso em harmonia com cada parte interativa, sendo estas os atores.
Nesta etapa, a modelagem estaria dividida em duas partes principais: 1) modelagem de um
sistema de help desk tradicional; 2) modelagem da parte que constitui o Raciocínio Baseado
em Casos (RBC). A concepção da primeira parte se deu sem maiores dificuldades visto que o
autor já possuía certo conhecimento sobre sistemas de help desk o que ajudou a guiar o
processo de definição dos principais requisitos e funcionalidades. A concepção da segunda
parte que compreendia além da modelagem, o planejamento de como se daria a integração do
modelo de RBC escolhido ao sistema de help desk, ocorreu de forma mais criteriosa e
cautelosa dada também a falta de experiência do autor em definir de forma precisa, como tal
técnica de RBC poderia ser aplicada em termos práticos. Com relação à engenharia de
software, o uso de ferramenta case para a modelagem do sistema serviu apenas para criação
de alguns diagramas já vistos no capítulo 4.
Modelagem de Dados: A modelagem de dados consistiu a construção do banco de dados do
sistema. Para o sistema proposto foi necessário apenas um banco de dados contando com 13
tabelas. Toda modelagem de dados se deu através da ferramenta SQL Server Management
Studio Express que possibilitou a criação e configuração de cada entidade visualmente de
91
forma ágil e eficiente, inclusive a criação do diagrama entidade-relacionamento visto no
capítulo 4.
Construção da Interface: A interface compreende o front-end do sistema constituído por
todas as telas (ou páginas web). Para o sistema proposto foram necessárias 27 telas no que
compreende páginas de visualização de informações e formulários. Toda construção da
interface do sistema se deu através da IDE Visual Studio que foi utilizada não só para
concepção de cada página e seus componentes, mas também para criação das classes
vinculadas a estas páginas formando assim toda a camada de visualização (ou view). Para
alguns formulários que contém campos do tipo data, foi utilizada a função datepicker da API
jQuery que vincula a um simples campo de texto um calendário para clicar e selecionar a data
requerida o que otimiza muito a usabilidade. Outro recurso bastante interessante que foi
utilizado é o de validação de campos obrigatórios e com formatação pré-definida. A
plataforma .NET Framework provê classes com métodos específicos só para este tipo de
validação de fácil implementação onde o evento de validação ocorre totalmente no lado
cliente evitando assim envio de dados para servidor e atualizações de página desnecessárias.
Com relação às grades onde são listados, por exemplo, os chamados, os usuários ou as FAQs
do sistema, nenhuma destas teve que ser construída de forma programática, pois o Visual
Studio já traz grades como componentes gráficos pré-definidos bastando apenas vinculá-los a
uma fonte de dados.
Implementação do Código: A grande maioria das classes implementadas estão vinculadas a
camada de visualização constituída pelas telas do sistema. O ambiente de desenvolvimento
utilizado para escrever e testar o código de programação também foi o Visual Studio. Foram
implementadas duas classes principais com métodos de controle de acesso e acesso a dados.
A primeira classe possui métodos para controle de acesso a recursos do sistema conforme o
perfil do usuário corrente. A segunda classe possui os métodos típicos da camada DAL (Data
Access Layer) para acesso a dados do banco. Foi criado também um pacote com duas classes
do RBC sendo que uma destas classes, chamada InformationRetrieval, implementa o principal
algoritmo do motor de busca, responsável pelo processo de recuperação de casos e do cálculo
de similaridade. A concepção das classes do RBC foi considerada a mais trabalhosa, pois
reproduzem o modelo de recuperação Vetorial apresentado no capítulo 2. Estas classes foram
construídas de forma completa e do zero baseando-se apenas no conteúdo bibliográfico
estudado.
92
As classes que implementam o motor de busca podem ser verificadas no
apêndice F.
5.3
APRESENTAÇÃO DO SISTEMA
Nesta seção é apresentada a interface gráfica do sistema constituída pelas telas de
visualização de informações e formulários.
5.3.1 Primeiro Acesso
Sempre que um usuário não cadastrado acessar o Help Desk, o controle de acesso
do sistema exibirá este formulário com alguns campos obrigatórios que o novo usuário deverá
preencher para assim criar sua conta de acesso. A tela mostrada na Figura 17 a seguir exibe o
formulário para cadastro de conta de acesso.
93
Figura 17 - Cadastro de conta de acesso
Fonte: Elaboração do autor, 2011.
Conforme os requisitos da modelagem, como o sistema foi projetado para
utilização em intranet, este é capaz de identificar o usuário corrente, capturando seu login de
rede que será o mesmo utilizado para o acesso ao Help Desk sem que haja a necessidade de
criar outro login de acesso ou digita-lo manualmente no momento do cadastro da conta de
acesso, bastando apenas informar os campos indicados como obrigatórios conforme a figura
anterior.
5.3.2 Busca da Solução e Retenção de Novos Casos
As telas e comentários a seguir têm como objetivo além de ilustrar a interface,
explanar em etapas o processo de busca da solução, por parte do usuário e o processo de
retenção de novos casos, por parte do Engenheiro do Conhecimento que embora aconteçam
de forma assíncrona, estão integrados.
94
5.3.2.1 Autoatendimento
Sempre que um usuário acessar o sistema, a primeira tela a ser exibida é a de
autoatendimento que disponibiliza com destaque a ferramenta de pesquisa para busca de
soluções. Através desta interface, o usuário poderá digitar de forma livre a sua questão e
efetuar a pesquisa clicando no botão “Perguntar”.
Figura 18 - Autoatendimento
Fonte: Elaboração do autor, 2011.
Conforme se verifica na Figura 18, o sistema retorna como resultado os casos
mais similares ao problema informado pelo usuário, sendo estes listados na parte inferior da
tela como hyperlinks que direcionam cada um a sua respectiva resposta que pode ser
visualizada em uma tela a parte.
95
5.3.2.2 Resposta
Através da lista de casos similares que é retornada pelo sistema, o usuário poderá
clicar no hyperlink de um dos casos para assim visualizar seu conteúdo.
Figura 19 - Resposta do caso similar
Fonte: Elaboração do autor, 2011.
A tela mostrada na Figura 19 é utilizada para visualizar a resposta/solução de um
caso específico.
5.3.2.3 Postar Dúvida
A partir do momento em que não existam casos similares ou nenhum dos casos
similares recuperados pelo sistema atenda ao problema apresentado, o usuário terá a opção de
enviar sua questão clicando no botão “Postar Dúvida”. Todas as questões enviadas são
passíveis de resposta pela área de Help Desk.
96
Figura 20 - Postar dúvida
Fonte: Elaboração do autor, 2011.
Ao clicar no botão “Postar Dúvida”, um formulário como é mostrado na Figura 21
é exibido onde o usuário poderá informar o título da sua questão e acrescentar informações
complementares se desejar.
Figura 21 - Formulário para envio de dúvidas
Fonte: Elaboração do autor, 2011.
97
Assim que o título da questão e demais informações adicionais do formulário são
preenchidos, a nova dúvida poderá ser enviada.
5.3.2.4 Lista de Questões
Todas as dúvidas postadas por usuários são armazenadas em uma lista de questões
pendentes (Figura 22) que deverão ser avaliadas pelo Analista RBC (ou Engenheiro do
Conhecimento). Vale a pena salientar que conforme os requisitos do sistema, usuários com
perfil de Solicitante não possuem permissão para acessar este recurso.
Figura 22 - Lista de questões
Fonte: Elaboração do autor, 2011.
A grade que lista cada questão exibe colunas como sendo alguns dos principais
campos do formulário de questões. É possível também ordenar os itens clicando no cabeçalho
de cada coluna.
98
Clicando no ícone da coluna “Editar” de um item da lista, é possível acessar suas
informações em modo de edição.
Figura 23 - Formulário de edição de questões
Fonte: Elaboração do autor, 2011.
Ao acessar uma questão da lista, o Analista RBC poderá visualizar suas
informações através de um formulário que permite sua edição como é mostrado na Figura 23.
Para auxiliar no controle e organização, um campo de opções chamado “Status” é
disponibilizado.
5.3.2.5 Retenção de Casos
Considerando que o Engenheiro do Conhecimento decida gerar um novo caso
para base de conhecimento do sistema a partir de uma questão específica, isto será possível
através do botão “Salvar Como FAQ” disponibilizado no formulário de edição de questões
(Figura 24).
99
Figura 24 - Salvando uma questão como FAQ
Fonte: Elaboração do autor, 2011.
Ao clicar no botão “Salvar Como FAQ” disponibilizado no formulário de edição
de questões, um formulário de criação de FAQ é exibido e as principais informações da
questão são transferidas para este facilitando assim o processo de elaboração da nova FAQ a
ser criada.
100
Figura 25 - Retenção de caso
Fonte: Elaboração do autor, 2011.
Por fim, elaborada e revisada a nova FAQ, esta poderá ser salva, representando
assim mais um caso da base de conhecimento.
5.3.3 Central de Chamados
A Central de Chamados é a principal tela do sistema de help desk de onde todo
inventário de incidentes pode ser gerenciado (Figura 26).
101
Figura 26 - Central de chamados
Fonte: Elaboração do autor, 2011.
A grade que lista cada chamado exibe colunas como sendo alguns dos principais
campos do formulário de chamados. É possível também ordenar os chamados clicando no
cabeçalho de cada coluna.
Para criar um novo chamado, o usuário deverá clicar no botão “Novo Chamado” e
preencher o formulário de criação.
A partir da Central de Chamados, clicando no hyperlink do titulo do chamado é
possível visualizar suas informações em modo leitura. Também a partir da Central de
Chamados, clicando no ícone da coluna “Editar” de um item da lista, é possível acessar suas
informações em modo de edição.
102
Figura 27 - Formulário de edição de chamados
Fonte: Elaboração do autor, 2011.
A Figura 27 apresenta a tela do formulário de edição de chamados utilizando
como exemplo um chamado específico.
Um dos Requisitos Funcionais definidos na Modelagem do sistema (RF12 Histórico de interações) estabelece que um chamado deve guardar o histórico de interações
entre os usuários envolvidos (Solicitante e Suporte).
103
Figura 28 - Histórico de interações do chamado
Fonte: Elaboração do autor, 2011.
No
exemplo
mostrado
pela
Figura
28,
é
destacado
no
campo
“Descrição/Acompanhamento” os registros de interação desde a abertura até a conclusão do
chamado.
5.3.4 FAQ
A lista de perguntas frequentes que é mostrada na Figura 29 a seguir relaciona
todas as FAQs da base de casos sendo este um recurso disponível a qualquer usuário do
sistema.
A grade que lista cada FAQ exibe colunas como sendo alguns dos principais
campos do formulário de visualização de FAQs. É possível também ordenar os itens clicando
no cabeçalho de cada coluna.
A partir da tela principal de FAQs, clicando no hyperlink do título de um item da
lista, é possível visualizar suas informações em modo leitura através de um formulário
específico.
104
Figura 29 - Lista de perguntas frequentes
Fonte: Elaboração do autor, 2011.
Também é possível através de uma ferramenta de busca que é disponibilizada,
realizar pesquisas por FAQs através de palavras chave. Ao clicar no botão “Buscar”, o
sistema recuperará as FAQs que contenham nos seus campos “Questão” ou “Resposta” as
palavras chave informadas. Ao final, uma lista de FAQs encontradas é impressa na tela como
resultado. O painel de busca permite ainda, que se faça um pré-filtro através do campo
“Categoria”.
5.3.5 Pesquisa Avançada
A Pesquisa Avançada de Chamados é um recurso de acesso a qualquer usuário
que permite a realização de pesquisas por chamados através de um número maior de filtros
como é mostrado na Figura 30 tendo como objetivo recuperar resultados mais específicos.
105
Figura 30 - Pesquisa avançada de chamados
Fonte: Elaboração do autor, 2011.
Para iniciar a pesquisa, o usuário poderá informar as palavras chave no campo
“Contendo” do painel de busca que serão procuradas pelo sistema no campo “Título da
Solicitação” de cada chamado do inventário. Ao final, uma lista de chamados encontrados é
impressa na tela como resultado. Ainda no painel de busca é possível filtrar a pesquisa por
categoria, prioridade e período de tempo da data de criação dos chamados.
A grade que lista cada item exibe colunas como sendo alguns dos principais
campos do formulário de chamados. É possível também ordenar os itens clicando no
cabeçalho de cada coluna.
5.3.6 Central de Usuários
A Central de Usuários é o principal recurso pelo qual as contas de usuários podem
ser gerenciadas (Figura 31). A grade que lista cada conta exibe colunas como sendo os
106
principais campos do formulário de usuários sendo possível ordenar os itens clicando no
cabeçalho de cada coluna.
Figura 31 - Central de usuários
Fonte: Elaboração do autor, 2011.
Para criar uma nova conta de usuário, o usuário deverá clicar no botão “Novo
Usuário” e preencher o formulário de cadastro. Clicando no ícone da coluna “Editar” de um
item da lista, é possível acessar as informações em modo de edição.
A Central de Usuários é um recurso que está disponível somente aos usuários com
perfil de Suporte e Administrador.
107
5.3.7 Base de Conhecimento
A tela inicial da Base de Conhecimento mostrada na Figura 32 a seguir, serve
apenas como um ponto de acesso aos recursos subjacentes que são: FAQ, Questões,
Dicionário de Sinônimos e a Lista de Termos Ignorados dos quais são apresentados
individualmente a seguir.
Figura 32 - Tela inicial da base de conhecimento
Fonte: Elaboração do autor, 2011.
A Base de Conhecimento é um recurso que está disponível somente aos usuários
com perfil de Analista RBC e Administrador.
108
5.3.7.1 FAQ
A lista de FAQs é o principal meio pelo qual a base de casos pode ser gerenciada
(Figura 33). Esta lista concentra todas as FAQs do sistema que são criadas e através dela uma
FAQ pode ser criada, editada ou excluída servindo como a principal ferramenta do Analista
RBC.
Figura 33 - FAQ (Base de Conhecimento)
Fonte: Elaboração do autor, 2011.
A grade que lista cada item exibe colunas como sendo alguns dos principais
campos do formulário de FAQs. É possível também ordenar os itens clicando no cabeçalho de
cada coluna.
Para criar uma FAQ, o usuário deverá clicar no botão “Nova FAQ” e preencher o
formulário de criação. Clicando no ícone da coluna “Editar” de um item da lista, é possível
acessar as informações em modo de edição.
109
Figura 34 - Formulário de edição de FAQs
Fonte: Elaboração do autor, 2011.
A Figura 34 ilustra o formulário de edição de FAQs que é similar ao de criação. É
através deste formulário que uma cópia da FAQ poderá ser criada através do botão “Salvar
Como” ou também excluída. Na imagem mostrada é utilizada como exemplo uma FAQ já
cadastrada no atual sistema.
5.3.7.2 Questões
Como já havia sido descrito nas seções anteriores, a lista de questões é um
repositório que concentra todas as questões postadas por usuários. Cada questão deverá ser
avaliada pelo Engenheiro do Conhecimento que decidirá se esta irá tornar-se uma FAQ da
base de casos ou não.
110
Figura 35 - Lista de questões (Base de Conhecimento)
Fonte: Elaboração do autor, 2011.
Nesta tela (Figura 35) não é disponibilizado o botão para criação de questões
sendo que o único meio pelo qual novas questões podem ser criadas é através da tela de
autoatendimento pelo recurso “Postar Dúvida” como já visto também nas seções anteriores.
5.3.7.3 Dicionário de Sinônimos
O Dicionário de Sinônimos ilustrado pela Figura 36 se divide em duas listas
principais onde a esquerda temos a relação de palavras utilizados para documentar as FAQs,
ou seja, os termos usualmente corretos que são os indexadores utilizados no algoritmo de RI.
À direita, os possíveis sinônimos para cada palavra sendo que cada palavra poderá ter n
sinônimos.
111
Figura 36 - Dicionário de sinônimos
Fonte: Elaboração do autor, 2011.
Todo gerenciamento e manutenção do dicionário se fazem através desta tela onde
o Engenheiro do Conhecimento poderá inserir, atualizar ou excluir tanto palavras como
sinônimos. É possível também ordenar os termos da lista de palavras clicando no hyperlink do
seu cabeçalho.
5.3.7.4 Lista de Termos Ignorados
A Lista de Termos Ignorados representa no RBC a stoplist, ou seja, a lista de
stopwords como já visto no capitulo 2.
112
Figura 37 - Lista de termos ignorados
Fonte: Elaboração do autor, 2011.
É através desta interface (Figura 37) que o Analista RBC poderá realizar a
manutenção da lista assim como inserir, atualizar ou excluir termos. É possível também
ordenar os termos clicando no hyperlink contido no cabeçalho da lista.
5.3.8 Campos Globais
O gerenciamento de campos globais é um recurso de configuração do sistema que
permite a manutenção dos campos de opções que são utilizados em todos os formulários
como, por exemplo, o campo “Status” do formulário de chamados, o campo ”Departamento”
do formulário de contas de usuários e outros.
113
Figura 38 - Campos globais
Fonte: Elaboração do autor, 2011.
A tela que é mostrada na Figura 38 está inicialmente dividida em três grupos que
podem ser visualizados verticalmente: Chamados, FAQ e Usuários sendo que cada grupo
relaciona os campos e suas respectivas opções.
É através desta interface que o Administrador do sistema realizará as manutenções
nestes campos caso seja necessário inserir, alterar ou excluir opções.
5.4
AVALIAÇÃO
Tendo visto que o sistema proposto engloba uma série de casos de uso que
poderiam ter aqui suas funcionalidades verificadas e atestadas, a avaliação deste protótipo
restringe-se apenas aos casos de uso relacionados ao Raciocínio Baseado em Casos como
sendo o foco principal ao que o presente trabalho se destina.
114
Segundo Wangenheim e Wangenheim (2003), o ciclo do RBC está dividido em
suas quatro etapas principais, cada uma com seus tipos e técnicas de aplicação específicas
como já visto no capítulo 2. Como para o sistema proposto a etapa de adaptação é nula e as
etapas de revisão e retenção são manuais, a única etapa avaliada em profundidade é a de
recuperação.
A avaliação do protótipo apresentado está dividida em duas partes principais que
são: avaliação do processo de recuperação de casos similares e avaliação geral do recurso de
autoatendimento dos quais serão vistos a seguir.
5.4.1 Avaliação do Processo de Recuperação de Casos Similares
Nesta primeira etapa da avaliação, todo o processo de recuperação de casos
similares é verificado, desde o envio da consulta, o processamento e o resultado retornado
pelo sistema. Através dos valores das principais variáveis que constituem o algoritmo de RI
utilizado, do qual foi construído com base no modelo de recuperação Vetorial, é provada a
eficiência da busca e correctitude dos resultados apresentados pelo protótipo.
Para tal avaliação, tomou-se como objeto de teste o seguinte problema de entrada:
“como excluir o histórico de arquivos da internet”
Figura 39 - Teste de recuperação de casos similares
Fonte: Elaboração do autor, 2011.
Após iniciar a busca, o sistema retorna os seguintes casos, classificados por ordem de
similaridade:
115
Figura 40 - Casos similares recuperados
Fonte: Elaboração do autor, 2011.
Os cinco casos recuperados são relacionados a seguir destacando-se os termos da consulta.
1 - Como apagar o histórico da internet e os arquivos temporários do Internet Explorer?
2 - Como remover uma conta de e-mail?
3 - Tenho acesso à rede local mas não consigo me conectar na internet.
4 - Como posso tornar o Internet Explorer o meu navegador padrão?
5 - Como salvar os arquivos anexos de uma mensagem no Outlook?
É importante ressaltar que devido a atual base de casos do protótipo não possuir
um número satisfatório de FAQs cadastradas, a busca pode retornar apenas um caso
considerado realmente similar, sendo este o número 1. O restante dos casos foi somente
recuperado pela coincidência de um dos termos da consulta, o que é esperado em RI Vetorial.
Considerando o fato de que em uma situação real os quatro casos restantes: 2, 3, 4 e 5 não
seriam úteis para o usuário, isto não refuta a avaliação do presente teste.
Para o problema de entrada “como excluir o histórico de arquivos da internet”
após o pré-processamento de texto com a eliminação das stopwords, sinais de pontuação,
caracteres especiais, etc., temos os seguintes termos indexadores: excluir, historico, arquivo
e internet.
As principais variáveis do algoritmo de RI definidos pelo modelo vetorial podem ser
verificadas pelas colunas da tabela mostrada na Figura 41 que são:
Freq. - Frequência de cada termo da consulta no conjunto de termos do documento analisado;
Max. Freq. - Máxima frequência de Freq.;
Freq. Norml. - Frequência normalizada de cada termo da consulta;
Freq. Inv. - Frequência Inversa de cada termo da consulta;
116
Peso - Peso de cada termo da consulta;
Sim. - Similaridade do documento em relação à consulta.
Figura 41 - Relatório para análise de casos similares
Fonte: Elaboração do autor, 2011.
O relatório para análise de casos similares mostrado na figura anterior, foi
implementado especialmente para validar os resultados do algoritmo de RI na fase de
desenvolvimento do sistema e também para apresenta-lo como instrumento da presente
avaliação.
O mesmo relatório pode ser verificado com os termos da consulta em destaque
através da tabela a seguir:
117
Tabela 3 - Relatório para análise de casos similares
Nº Documentos
Termos
Freq.
1
Como apagar o
histórico da internet
e os arquivos
temporários do
Internet Explorer?
1
1
1
2
2
Como remover uma
conta de e-mail?
apagar
historico
internet
arquivo
temporario
internet
explorer
remover
conta
email
3
Tenho acesso à rede
local mas não consigo
me conectar na
internet.
4
Como posso tornar o
Internet Explorer o
meu navegador
padrão?
5
Como salvar os
arquivos anexos de
uma mensagem no
Outlook?
tenho
acesso
rede
local
conectar
internet
posso
tornar
internet
explorer
navegador
padrao
salvar
arquivo
anexo
mensagem
outlook
Max.
Freq.
2
Freq.
Norml.
0,5
0,5
0,5
1
Freq.
Inv.
1,079
1,38
0,477
0,778
Peso
Sim.
0,54
0,69
0,24
0,78
0,954
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1,079
1,38
0,477
0,778
1,079
1,38
0,477
0,778
1,09
0
0
0
0
0
0
0,78
0,546
0
0
0
1
1
0
0
0
1
1,079
1,38
0,477
0,778
0
0
0
0,78
0,394
0
0
1
0
1
0
0
1
0
1,079
1,38
0,477
0,778
0
0
0,47
0
0,242
1
0,394
Fonte: Elaboração do autor, 2011.
Analisando os valores obtidos de cada variável para o cálculo da similaridade dos
documentos, verifica-se que o maior número de frequências ocorre para o documento 1 onde
os termos da consulta: excluir, histórico e arquivo aparecem pelo menos uma vez e o termo
internet aparece duas vezes, o que torna o peso total e a similaridade do documento 1
superior em relação aos outros documentos.
Perceba que a utilização do termo excluir na consulta, não impede a localização do
documento 1, pois através do dicionário de sinônimos, o sistema pode encontrar o termo
correspondente “apagar” e assim prosseguir com o processamento sem afetar a similaridade.
118
Para o documento 2, apenas o termo excluir da consulta aparece uma vez sendo que
novamente o sistema encontra o termo correspondente “remover” através do dicionário de
sinônimos.
Para os documentos 3 e 4 apenas o termo internet da consulta aparece uma vez.
Por último, para documento 5, apenas o termo arquivo da consulta aparece uma vez.
Através do teste realizado, verifica-se que o algoritmo de RI, lista de stopwords e
o dicionário de sinônimos, trabalham em perfeita harmonia de modo que a lista de casos
similares recuperados e sua ordem de classificação são condizentes com os resultados de
cálculo apresentados no relatório de análise.
5.4.2 Avaliação Geral do Recurso de Autoatendimento
Sendo o autoatendimento o segundo propósito a que se destina a solução proposta,
faz-se necessário que esta parte do sistema que é constituída por um conjunto de recursos
específicos que a ampara, seja objeto de avaliação.
Como o tipo de abordagem adotado para a presente pesquisa é de natureza
qualitativa, o objetivo principal então é conhecer as percepções de um número limitado de
indivíduos pesquisados a respeito da proposta apresentada e que também a caráter de teste,
utilizaram o software avaliado.
5.4.2.1 Coleta de Dados
Para o registro da opinião dos entrevistados, é utilizado como instrumento um
questionário de perguntas fechadas que segundo Silva e Menezes (2005), “é uma série
ordenada de perguntas que devem ser respondidas por escrito pelo informante”.
As perguntas que compõem o questionário foram elaboradas de forma a traduzir
os reais objetivos da proposta facilitando assim a avaliação do trabalho.
119
O questionário é composto por seis perguntas. Embora as perguntas sejam
fechadas, é deixado um espaço para comentários em cada uma das perguntas de forma
opcional. Ao final do questionário também é disponibilizado um espaço onde o entrevistado
pode expor sua opinião de forma mais ampla através de comentários, sugestões ou críticas
sobre a proposta ou o protótipo apresentado.
O questionário foi aplicado a um grupo de dez entrevistados que utilizaram o
protótipo. O grupo foi predominantemente formado por voluntários com perfil de usuário
sendo que apenas dois voluntários exerciam atividades ligadas a TI como Analistas de
Suporte. As pessoas que participaram da pesquisa são funcionários da empresa avaliada como
já visto no início deste trabalho.
O quadro a seguir apresenta as perguntas utilizadas no questionário aplicado.
Nº Pergunta
Alternativas
1
Você considera importante que sistemas de
atendimento como help desk que são orientados por
especialistas, também possuam recursos de
autoatendimento orientados por máquina?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
2
Você acredita que sistemas tutoriais de
autoatendimento reduzem a dependência dos
usuários com o setor de Help Desk?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
3
Você acredita que sistemas tutoriais de
autoatendimento reduzem significativamente o
número de registros de incidentes (abertura de
chamados)?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
4
Considerando um sistema de help desk com ótimos
recursos de autoatendimento que lhe forneça a
resposta necessária para o problema de forma clara
e didática, você prefere:
a) Utilizar o autoatendimento
b) Utilizar o autoatendimento
sempre que possível
c) Utilizar o autoatendimento
eventualmente
d) Abrir um chamado e esperar
o atendimento
120
5
Com relação ao protótipo apresentado, você
considera eficaz a usabilidade no que diz respeito à
forma com que você e o sistema interagem, ou seja,
a ferramenta torna fácil o processo de exposição do
problema e obtenção/compreensão da resposta?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
6
Você considera que o protótipo apresentado atende
aos requisitos da proposta, ou seja, um sistema com
recursos de autoatendimento eficiente que irá
minimizar o número de chamados de help desk?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Quadro 7 - Perguntas do questionário da pesquisa
Fonte: Elaboração do autor, 2011.
A aplicação da pesquisa obedeceu a uma sequência de etapas definidas que são:
1) Apresentação geral do sistema, propósito e seus objetivos a cada entrevistado;
2) Treinamento operacional do sistema para o uso do autoatendimento;
3) Utilização do protótipo e testes por parte dos usuários;
4) Aplicação do questionário.
O questionário original que foi aplicado aos entrevistados na pesquisa pode ser
verificado no apêndice G.
5.4.2.2 Resultados da Pesquisa
A apresentação dos dados têm por objetivo demostrar os resultados obtidos da
pesquisa de forma organizada utilizando-se de recursos como, por exemplo, tabelas, quadros e
gráficos (SILVA; MENEZES, 2005).
Desta forma, a seguir são relacionadas as perguntas do questionário da pesquisa e
seus respectivos gráficos que quantificam os resultados obtidos. É apresentado também
comentários dos entrevistados.
121
Pergunta 1 - Você considera importante que sistemas de atendimento como help desk que são
orientados por especialistas, também possuam recursos de autoatendimento orientados por
máquina?
Não sei opinar
0
Discordo
0
Indiferente
10%
Concordo
60%
Concordo fortemente
30%
0
1
2
3
4
5
6
7
Gráfico 1 - Resultado da pesquisa para a pergunta 1 do questionário
Fonte: Elaboração do autor, 2011.
Segundo um dos entrevistados o qual é analista de suporte e que respondeu a
pergunta através da alternativa “Concordo fortemente”, seu comentário foi “É desnecessário
em algumas vezes o contato com o Help Desk, em muitos casos os problemas são simples e o
próprio usuário com instruções pode resolver.”.
Pergunta 2 - Você acredita que sistemas tutoriais de autoatendimento reduzem a dependência
dos usuários com o setor de Help Desk?
Não sei opinar
10%
Discordo
Indiferente
10%
Concordo
80%
Concordo fortemente
0
2
4
6
Gráfico 2 - Resultado da pesquisa para a pergunta 2 do questionário
Fonte: Elaboração do autor, 2011.
8
10
122
Conforme um dos entrevistados o qual é analista de suporte e que respondeu a
pergunta através da alternativa “Concordo”, seu comentário foi o seguinte: “Sim,
principalmente se o usuário tentar resolver e conseguir, então nas próximas vezes continuará
utilizando o auto atendimento e se tornando menos dependente.”.
Segundo outro entrevistado que é usuário final o qual respondeu a pergunta
através da alternativa “Concordo”, seu comentário foi o seguinte: “Se pudermos encontrar a
solução no autoatendimento, usaremos bem menos o Help Desk.”.
Pergunta 3 - Você acredita que sistemas tutoriais de autoatendimento reduzem
significativamente o número de registros de incidentes (abertura de chamados)?
Não sei opinar
10%
Discordo
10%
Indiferente
0%
Concordo
70%
Concordo fortemente
10%
0
1
2
3
4
5
6
7
8
Gráfico 3 - Resultado da pesquisa para a pergunta 3 do questionário
Fonte: Elaboração do autor, 2011.
De acordo com um entrevistado que é usuário final o qual respondeu a pergunta
através da alternativa “Concordo”, seu comentário foi o seguinte: “Mas somente em alguns
casos, existem pessoas que não tem interesse, nem tempo para resolver.”.
Pergunta 4 - Considerando um sistema de help desk com ótimos recursos de autoatendimento
que lhe forneça a resposta necessária para o problema de forma clara e didática, você prefere:
123
Abrir um chamado e esperar o atendimento
10%
Utilizar o autoatendimento eventualmente
0%
Utilizar o autoatendimento sempre que possível
40%
Utilizar o autoatendimento
50%
0
1
2
3
4
5
6
Gráfico 4 - Resultado da pesquisa para a pergunta 4 do questionário
Fonte: Elaboração do autor, 2011.
Conforme um entrevistado que é analista de suporte o qual respondeu a pergunta
através da alternativa “Utilizar o autoatendimento sempre que possível”, seu comentário foi o
seguinte: “Acredito que com o mínimo de conhecimento e seguindo o passo-a-passo, o
próprio usuário resolve grande parte dos problemas.”.
Outro entrevistado que é usuário o qual respondeu a pergunta através da
alternativa “Abrir um chamado e esperar o atendimento”, seu comentário foi o seguinte: “Se
forem problemas de computador, prefiro não tentar resolver pois tenho medo de piorar ainda
mais.”.
Pergunta 5 - Com relação ao protótipo apresentado, você considera eficaz a usabilidade no
que diz respeito à forma com que você e o sistema interagem, ou seja, a ferramenta torna fácil
o processo de exposição do problema e obtenção/compreensão da resposta?
Não sei opinar
0%
Discordo
10%
Indiferente
0%
Concordo
50%
Concordo fortemente
40%
0
1
2
3
4
Gráfico 5 - Resultado da pesquisa para a pergunta 5 do questionário
Fonte: Elaboração do autor, 2011.
5
6
124
Segundo um entrevistado que é analista de suporte o qual respondeu a pergunta
através da alternativa “Concordo fortemente”, seu comentário foi o seguinte: “Por possuir um
dicionário de sinônimos facilita, pois os usuários podem utilizar a sua própria linguagem.”.
Pergunta 6 - Você considera que o protótipo apresentado atende aos requisitos da proposta,
ou seja, um sistema com recursos de autoatendimento eficiente que irá minimizar o número
de chamados de help desk?
Não sei opinar
0
Discordo
0
Indiferente
0
Concordo
20%
Concordo fortemente
80%
0
2
4
6
8
10
Gráfico 6 - Resultado da pesquisa para a pergunta 6 do questionário
Fonte: Elaboração do autor, 2011.
De acordo com um entrevistado que é usuário final o qual respondeu a pergunta
através da alternativa “Concordo”, seu comentário foi o seguinte: “Com o tempo,
enriquecendo a base de FAQs e o incentivo da solução por parte do usuário, pode-se esperar
tal resultado.”.
Através do espaço disponibilizado no final do questionário onde os entrevistados
puderam expor suas opiniões, foi possível coletar alguns depoimentos positivos que revelaram
um bom nível de contentamento com a proposta e o protótipo.
Dos questionários coletados que continham depoimentos, as afirmações podem ser verificadas
a seguir:
O entrevistado #4 afirma: “[...] Acho que o autoatendimento reduziria o número de
chamados. Claro que algumas pessoas poderiam não ter interesse em resolver, outras por
tentar deixaria pior, mas numa visão geral, muito bom! Implementaria na minha empresa.”.
125
O entrevistado #1 afirma: “Achei muito bom. Poderia ser mais didático tendo imagens
ilustrativas. Mas acho que o autoatendimento trará agilidade e ganho de tempo para o
usuário, facilitando assim o trabalho no dia-a-dia.”.
O entrevistado #7 afirma: “O sistema é de fácil compreensão e atende vários tipos de dúvidas
de forma clara e objetiva.”.
De modo analítico, é possível chegar a algumas conclusões tomando como base
os resultados obtidos. Segundo Silva e Menezes (2005), a análise deve ser realizada para
atender aos objetivos da pesquisa com o objetivo de confirmar ou rejeitar os seus
pressupostos.
Através dos gráficos demonstrados anteriormente, é possível perceber em cada
alternativa o percentual entrevistados que as tomou como resposta.
Para as perguntas 1, 2, 3, 5 e 6 que contém as alternativas:





Concordo fortemente;
Concordo;
Indiferente;
Discordo;
Não sei opinar.
E para o grupo que participou da pesquisa, obteve-se uma média de 32% dos entrevistados
que tomou como resposta a alternativa “Concordo fortemente”. Para a alternativa
“Concordo”, obteve-se uma média de 56% dos entrevistados que a tomou como resposta. Para
as alternativas: “Indiferente”, “Discordo” e “Não sei opinar”, obteve-se uma média de 4% dos
entrevistados que as tomou como resposta.
O percentual da média de entrevistados por resposta pode ser verificado no gráfico a seguir:
126
4%
4%
4%
Concordo fortemente (32%)
32%
Concordo (56%)
Indiferente (4%)
Discordo (4%)
56%
Não sei opinar (4%)
Gráfico 7 - Análise dos resultados para as perguntas 1, 2, 3, 5 e 6 do questionário
Fonte: Elaboração do autor, 2011.
Com relação aos resultados apresentados, a pesquisa revela que 88% dos entrevistados
concordaram em 83,3% das questões, representadas pelas perguntas 1, 2, 3, 5 e 6.
Para a pergunta 4 que contém as seguintes alternativas:

Utilizar o autoatendimento;

Utilizar o autoatendimento sempre que possível;

Utilizar o autoatendimento eventualmente;

Abrir um chamado e esperar o atendimento.
O percentual de entrevistados por resposta pode ser verificado no gráfico a seguir:
Abrir um chamado e esperar o atendimento
10%
Utilizar o autoatendimento eventualmente
0%
Utilizar o autoatendimento sempre que possível
40%
Utilizar o autoatendimento
50%
0
1
Gráfico 8 - Análise dos resultados para a pergunta 4 do questionário
Fonte: Elaboração do autor, 2011.
2
3
4
5
6
127
Por fim, as perguntas da pesquisa refletem os reais objetivos da proposta sendo
que suas respostas representam escalas que em verdade servem para medir o quanto um
determinado objetivo foi atingido e de modo geral como foi verificado através dos resultados,
a pesquisa pode confirmar os pressupostos do projeto.
128
6
CONCLUSÕES E TRABALHOS FUTUROS
Neste trabalho foi apresentada a proposta de um sistema para gestão de help desk
que utiliza Raciocínio Baseado em Casos (RBC), uma tecnologia bastante difundida e que
vem sendo cada vez mais aplicada no desenvolvimento de Sistemas Baseados em
Conhecimento.
O Raciocínio Baseado em Casos é uma abordagem para solução de problemas
com base na experiência passada, ou seja, novos problemas são solucionados por meio de
casos anteriores já resolvidos.
Dentre os vários recursos computacionais que a área de Help Desk utiliza na
gestão de incidentes e atendimento aos usuários, os softwares de help desk tem se mostrado
ferramentas bastante completas.
Neste sentido, o sistema proposto buscou fornecer uma solução que integra as
funcionalidades de um software de help desk tradicional aos recursos que o RBC oferece.
Sobre os objetivos estabelecidos no início do projeto, se tem a ótica de que num
geral foram atingidos de forma bastante satisfatória, entretanto com algumas ressalvas.
Conhecidas as delimitações do projeto, o sistema proposto foi então modelado e
construído atendendo aos requisitos estabelecidos. Desta forma, o primeiro objetivo da
proposta como sendo o desenvolvimento de um sistema de help desk para gestão de
incidentes, foi então cumprido.
Durante a construção do protótipo surgiram em alguns momentos dificuldades
técnicas que tornaram o processo de desenvolvimento um pouco mais demorado. Como já
visto anteriormente, todo conjunto de tecnologias da plataforma .NET que foram utilizadas,
pode prover um ambiente de desenvolvimento bastante ágil, estável e agradável de se
trabalhar o que contribuiu em muito para o sucesso do projeto.
O segundo e mais importante objetivo da proposta foi a implementação do recurso
de autoatendimento, modelado sob os padrões do RBC.
Embora existam muitos sistemas de RBC cujo ciclo: Recuperação - Adaptação Revisão - Retenção não ocorra totalmente sem a participação humana, como é o caso do
sistema proposto, ainda assim são chamados de sistemas de RBC.
O principal intuito foi criar um sistema onde o usuário de forma autônoma
pudesse encontrar a solução para os seus problemas de forma rápida e fácil sem a intervenção
129
de terceiros. Verificou-se que o RBC Textual atenderia este propósito. Realmente a técnica de
RBC Textual torna a interação do usuário com o sistema bastante livre, pois nos sistemas de
RBC estruturais existem duas situações comuns que são: o usuário precisa seguir os
protocolos do sistema para se chegar a solução do problema, o que nem sempre é uma tarefa
que qualquer os usuário está disposto a enfrentar, ou de outra forma, repassar as informações
do problema a um especialista que tentará através do sistema de RBC encontrar a solução para
o usuário, o que acaba criando a situação de dependência indesejada.
Por outro lado, apesar dos sistemas de RBC Textuais proverem a praticidade em
vários aspectos e serem muito bons na etapa de recuperação que é uma das mais importantes,
a implementação de mecanismos de adaptação ou revisão automáticos é mais difícil o que os
torna incompletos. Uma das grandes vantagens que pode ser mencionada sobre um sistema de
RBC Textual é que ele terá o mesmo desempenho em termos de funcionamento sobre
qualquer base de conhecimento, independente do domínio e quanto mais alimentada e
completa for esta base, maior será o seu poder de resposta.
Com relação à avaliação do protótipo, o relatório de análise de casos similares que
foi utilizado traria resultados mais interessantes para fins de estudo e comparação se a base de
casos possuísse pelo menos 100 FAQs cadastradas. Embora a base utilizada tenha totalizado
apenas 24 FAQs, a eficiência do algoritmo de Recuperação de Informação pode ser
comprovada.
Sobre trabalhos futuros relacionados ao protótipo, o que se pode afirmar é que
nenhum sistema é completo, sempre haverá melhorias e desafios. Desta maneira além da
implementação dos recursos delimitados do trabalho, existem alguns recursos já vislumbrados
que poderão estar incluídos na próxima etapa do projeto que são:
- Disponibilização na página principal do Autoatendimento um painel com as
FAQs top 10 mais acessadas pelos usuários;
- Chat online para abrir um canal de conversa em tempo real entre usuário e
especialista;
- Implementação de um corretor ortográfico integrado ao motor de busca do
autoatendimento;
- Implementação de um mecanismo para encadeamento de FAQs de forma que
uma FAQ recuperada traz consigo outras FAQs relacionadas;
- Integração com outras bases de conhecimento através de web services;
- Tornar o ciclo do RBC no atual sistema mais completo.
130
REFERÊNCIAS
ARAÚJO, Anderson Viçoso de. Treinamento Avançado em .NET. Digerati, 2007.
BAEZA-YATES, Ricardo; RIBEIRO-NETO, Berthier. Modern Information Retrieval.
USA. Addison-Wesley Publishing Company, 1999.
BARONE, Dante. Sociedades Artificiais: A Nova Fronteira da Inteligência nas Máquinas.
Bookman, 2003.
CADENHEAD, Rogers; LEMAY, Laura. Aprenda em 21 dias Java 2. Elsevier, 2005.
CAMPOS, Leonardo Martins. Centrais de Help-Desk: Avaliação do serviço de atendimento
ao cliente de Empresas Desenvolvedoras de Sistemas de Gestão Empresarial. 2007.237f.
Dissertação (Pós-Graduação em Ciência da Informação) - Universidade Federal de Minas
Gerais, Belo Horizonte, 2007.
CHECLAND, P. B.. Systems Thinking, Systems Practice, Chichester. England: John
Wiley, 1981.
COCKBURN, Alistair. Escrevendo Casos de Uso Eficazes: Um guia pratico para
desenvolvedores de software. Bookman, 2001.
COHEN, Roberto. Implantação de Help Desk e Service Desk. Novatec, 2008.
COSTA, Carlos J. Desenvolvimento para Web. Press.itml.org, 2007.
CIRIBELLI, Marilda Corrêa. Como Elaborar uma Dissertação de Mestrado através da
pesquisa científica. Rio de Janeiro: 7 Letras, 2003.
FERNANDES, Anita Ma da Rocha. et al. Desenvolvimento de uma FAQ baseada em RBC
para suporte a usuários de sistemas web. Publicado em: mar. 2010. Disponível em: <
http://www.aedb.br/seget/artigos2010.php >. Acesso em: 15 mai.
FOROUZAN, Behrouz A.. Comunicação de Dados e Redes de Computadores. Bookman,
2008.
131
FOWLER, Martin. UML essencial: um breve guia para a linguagem-padrão de modelagem
de objetos. Porto Alegre: Bookman, 2005.
FURTADO, Vasco. Tecnologia e Gestão da Informação na Segurança Pública.
Garamond, 2002.
GARCIA, Eduardo Alfonso Cadavid. Manual de Sistematização de documentos técnicos.
São Paulo: Atlas, 1998.
GIARRATANO, Joseph; RILEY, Gary. Expert Systems: principles and programming.
Boston: PWS, 1998.
IIBA, International Institute of Business Analysis. O Guia para o Corpo de Conhecimento
de Análise de NegóciosTM (Guia BABOX ®). IIBA, 2011.
ITSMF. Fundamentos do Gerenciamento de Serviços em TI Baseado na ITIL ®. Van
Haren Publishing, 2006.
LAND, F.. Adapting to Changing User Requirements, Information & Management, 5(1),
1982. p. 91-107.
LEITE, Mário. Técnicas de Programação: Uma Abordagem Moderna. Brasport, 2006.
LEONEL, Vilson; MOTTA, Alexandre de Medeiros. Ciência e Pesquisa: Livro didático.
Palhoça: UNISUL, 2007.
MACHADO, Debora Santos. Proposta de um Novo Modelo de Gestão de Serviços para o
Help Desk da Empresa Sim Telecom. 2008. 163f. Monografia (Bacharelado em
Administração de Empresas) - Pontifícia Universidade Católica do Rio Grande do Sul, 2008.
MARTINS, José Carlos Cordeiro. Gerenciando projetos de desenvolvimento de software
com PMI, RUP e UML. Rio de Janeiro: Brasport, 2007.
MEDEIROS, Maysa Regina; BARRETO, Jorge Muniz. Metodologia para Desenvolvimento
de Programas em Inteligência Artificial: Sonho ou Tecnologia? Publicado em: jan. 2003.
Disponível em: < http://www.inf.ufsc.br>. Acesso em: 18 abr.
132
MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.2: Do Conceitual à
Implementação. Brasport, 2010.
MENDES, Raquel Dias. Inteligência Artificial: Sistemas Especialistas no Gerenciamento da
Informação. Publicado em: abr. 1997. Disponível em: < http://www.scielo.br >. Acesso em:
25 abr.
MICROSOFT. Microsoft® SQL Server 2005 Express Edition Service Pack 2. Publicado
em: fev. 2007. Disponível em: < http://www.microsoft.com/downloads/ >. Acesso em: 8 out.
MICROSOFT. Microsoft® SQL Server® 2008 Management Studio Express. Publicado
em: fev. 2009. Disponível em: < http://www.microsoft.com/downloads/ >. Acesso em: 8 out.
MICROSOFT. Microsoft® Visual Studio 2010. Publicado em: 2010. Disponível em: <
http://msdn.microsoft.com/pt-br/library/dd831853.aspx >. Acesso em: 18 out.
MORGADO, Gisele P. et al. Práticas do CMMI® como regras de negócio. Publicado em:
ago. 2007. Disponível em: < http://www.scielo.br >. Acesso em: 19 jun.
NILSON, Neils S.. Principles of Artificial Intelligence. Springer Verlag: Berlin, 1982.
OGC. ITIL: Service Operation. London: TSO, 2007.
RAMOS, Ricardo Argenton. Treinamento prático em UML. São Paulo: Digerati Books,
2006.
REZENDE, Solange Oliveira. Sistemas Inteligentes: Fundamentos e Aplicações. Manole,
2005.
RICH, Elaine. Artificial Intelligence, New York: Mc Graw Hill Book, 1983.
RUSSEL, Stuart; NORVIG, Peter. Inteligência Artificial. Campus, 2004.
SÁ, Fábio Pessôa. Avaliação da Recuperação no Raciocínio Baseado em Casos Estrutural
e Textual em um Sistema de Help-desk. 2007. 79f. Dissertação (Mestrado em Informática) Universidade Católica de Santos, Santos, 2007.
133
SCHUTZER, D.. Artificial intelligence: an applications-oriented approach. New York: Van
Nostrand Reinhold Company, 1987.
SILVA, Maurício Samy. jQuery a Biblioteca do Programador JavaScript. Novatec, 2008.
SPAKI, Eduardo. et al. Desenvolvimento para Web usando o Visual Studio 2008. Brasport,
2008.
STATDLOBER, Juliano. Help-Desk e SAC com Qualidade. Brasport, 2006.
TURBAN, Efraim; MCCLEAN, Ephraim; WETHERBE, James C.. Tecnologia da
Informação para Gestão: Transformando os Negócios na Economia Digital. Bookman,
2004.
TURBAN, Efraim; RAINER, R. Kelly; POTTER, Richard E.. Administração de Tecnologia
da Informação. Elsevier, 2005.
WANGENHEIN, Christiane Gresse von; WANGENHEIN, Aldo von. Raciocínio Baseado
em Casos. Manole, 2003.
WATERMAN, D.. A Guide to Expert Systems. Addison-Wesley, 1986.
134
APÊNDICE A - LISTA DE PERGUNTAS FREQUENTES
Nº FAQ
Categoria
1
Que informação útil posso tirar de um Sistema de Informação?
Software
2
Tenho o Acrobat Reader instalado mas não consigo abrir um arquivo PDF? PDF
3
Como alterar a resolução da tela e melhorar a imagem no Windows XP?
Monitor
4
Como gravar um CD ou DVD a partir de um arquivo ISO?
CD e DVD
5
Como faço para copiar arquivos e pastas para um CD ou DVD?
CD e DVD
6
Como instalar uma impressora da rede?
Impressão
7
Como salvar os arquivos anexos de uma mensagem no Outlook?
E-mail
8
Como definir uma senha para ajudar a proteger as informações no
E-mail
Outlook?
9
Como reduzir o tamanho de um arquivo (pst) de dados do Outlook?
E-mail
10 Como fazer um backup das mensagens do Outlook?
E-mail
11 Como mover um arquivo de dados (pst) do Outlook para outra pasta?
E-mail
12 Como configurar manualmente uma conta POP3 ou IMAP?
E-mail
13 Como remover uma conta de e-mail?
E-mail
14 Meu programa de e-mail dá erro dizendo que a senha está inválida.
E-mail
15 O que é IMAP?
E-mail
16 O que é POP3?
E-mail
17 Como criar e configurar uma conta de e-mail no Microsoft Outlook?
E-mail
18 Onde estão os meus favoritos? Como posso adicionar outros?
Internet
19 Como posso tornar o Internet Explorer o meu navegador padrão?
Internet
20 Como apagar o histórico da internet e os arquivos temporários do Internet
Internet
Explorer?
21 Tenho acesso à rede local mas não consigo me conectar na internet.
Internet
22 Meu aplicativo não está funcionando, como devo proceder?
Software
23 O que é o Help Desk?
Help Desk
24 Qual o tempo de resposta do Help Desk?
Help Desk
Quadro 8 - Lista de FAQs
Fonte: Elaboração do autor, 2011.
135
APÊNDICE B - REQUISITOS FUNCIONAIS
Nome
Descrição
RF01 - Identificação do usuário
corrente
Condições:
1 - O sistema deverá ser capaz de identificar o nome
do usuário corrente e validar seu acesso.
Para isso o usuário necessitará também, estar com seu
computador logado na rede local e no domínio da
respectiva empresa;
2 - A autenticação se fará apenas pelo nome de usuário
da rede que também deverá estar cadastrado no
sistema;
3 - Por questões de agilidade, não será necessário
senha de acesso.
RF02 - Criação de conta de acesso Condições:
1 - O sistema deverá disponibilizar o recurso pelo qual
o usuário seja capaz de realizar o cadastro da sua conta
de acesso;
2 - Neste momento, serão solicitados: nome completo,
e-mail, telefone e setor;
3 - O login será obtido automaticamente a partir do
computador do usuário que está logado no domínio da
rede local;
RF03 - Gerenciamento de
chamados
4 - O nome do domínio da rede também deverá ser
validado.
Condições:
1 - O sistema deverá prover o recurso pelo qual o
inventário de chamados de help desk possa ser
gerenciado;
2 - A tela do recurso deverá dispor uma grade que lista
os chamados e apresenta suas informações por colunas
que contém controles para ordenação dos itens da lista;
As colunas que a grade deverá conter são:
. Nº
136
. Editar (Botão)
. Anexos
. Título do Chamado (Hyperlink)
. Categoria
. Solicitante
. Prioridade
. Prazo
. Indicador gráfico de Status
. Status
. Data de Conclusão
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - A informação completa de cada item da lista deverá
ser acessada de duas formas:
a) Através do botão da coluna “Editar”;
b) Através do hyperlink da coluna “Título do
Chamado”.
RF04 Criação/Edição/Visualização de
chamados
5 - A informação completa de um item deverá ser tanto
visualizada como editada através de formulários
específicos.
Condições:
1 - O sistema deverá prover o recurso pelo qual os
usuários possam criar, editar ou visualizar chamados
através de formulários específicos;
2 - O formulário para criação de chamados deverá
conter os seguintes campos:
. Nº Chamado (Rótulo)
. Solicitante (Opção)
. Título da Solicitação (Texto)
. Categoria (Opção)
. Descrição/Acompanhamento (Texto)
. Prioridade (Opção)
. Prazo de Atendimento (Texto)
. Anexos (Hyperlink)
. Serviço Atendido (Opção)
3 - Os formulários para visualização e edição de
chamados deverão possuir os mesmos campos do
formulário de criação, porém com seguintes campos
137
adicionais:
RF05 - Histórico de interações do
chamado
RF06 - Anexos do chamado
RF07 - Motor de busca
. Status (Opção)
. Data de Conclusão (Texto)
. Responsável pelo Atendimento (Opção)
Condições:
1 - Cada chamado deverá armazenar a lista do
histórico de interações, identificadas por: nome do
usuário, data, hora e descrição da interação.
Condições:
1 - O sistema deverá prover o recurso que possibilitará
ao usuário anexar, abrir ou excluir arquivos em um
chamado.
Condições:
1 - O sistema deverá prover o recurso pelo qual as
FAQs possam ser pesquisadas através de um motor de
busca;
2 - O motor de busca deverá recuperar FAQs como
sendo os casos mais similares ao problema expresso
pelos termos da consulta do usuário;
3 - Os dados de entrada para execução da pesquisa
serão informados através da descrição textual do
problema;
4 - O painel de pesquisa deverá possuir caixa de texto
e botão “Perguntar” além de filtro por Categoria;
5 - O número de resultados retornados deverá ser de no
máximo 5 (cinco), sendo estes ordenados por
similaridade aos termos da consulta (mais similares no
topo da lista);
RF08 - Envio de dúvidas
6 - A resposta/solução como sendo o conteúdo de cada
caso similar recuperado deverá ser visualizada em uma
tela a parte.
Condições:
1 - A mesma tela do motor de busca (RF07) deverá
dispor um botão chamado “Postar Dúvidas” que será
utilizado pelos usuários quando estes não obtiverem
êxito em suas pesquisas. Através deste recurso, uma
dúvida de usuário poderá por meio de um formulário
138
específico ser enviada para uma lista de questões
pendentes que deverão ser avaliadas por um
especialista;
2 - O formulário para envio de dúvidas deverá possuir
os seguintes campos:
RF09 - FAQ
. Questão (Texto)
. Descrição/Observação (Texto)
Condições:
1 - O sistema deverá prover o recurso pelo qual a lista
de perguntas frequentes possa ser disponibilizada a
todos os usuários;
2 - A tela do recurso deverá dispor uma grade que lista
as FAQs e apresenta suas informações por colunas que
contém controles para ordenação dos itens da lista;
As colunas que a grade deverá conter são:
. Questão (Hyperlink)
. Categoria
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - A informação completa de cada item da lista deverá
ser acessada de através do hyperlink da coluna
“Questão”;
5 - A informação completa de um item poderá ser
visualizada através de um formulário específico que
deverá conter os seguintes campos:
. Nº FAQ
. Questão
. Categoria
. Resposta
6 - A lista deverá dispor uma ferramenta de pesquisa
de FAQs contendo caixa de texto e botão “Buscar”
além de filtro por Categoria;
7 - Os resultados da pesquisa deverão ser exibidos na
mesma tela, ou seja, utilizará a mesma grade de itens.
139
RF10 - Pesquisa avançada de
chamados
Condições:
1 - O sistema deverá prover o recurso pelo qual os
usuários possam realizar pesquisas por chamados;
2 - A tela do recurso deverá dispor um painel de
pesquisa com parâmetros de busca configuráveis
contendo caixa de texto e botão “Buscar” além de
filtros por: Categoria (Opção), Prioridade (Opção) e
período de criação dos chamados com dois campos do
tipo data (Texto) início e término;
3 - Os itens recuperados da pesquisa deverão ser
exibidos em uma grade com colunas contendo
controles que permitem a ordenação;
As colunas que a grade deverá conter são:
. Nº
. Título do Chamado (Hyperlink)
. Categoria
. Solicitante
. Prioridade
. Prazo
. Status
. Conclusão
RF11 - Gerenciamento de
usuários
4 - A informação completa de cada item recuperado
deverá ser visualizada através do formulário de
visualização de chamados.
Condições:
1 - O sistema deverá prover o recurso pelo qual as
contas de usuários possam ser gerenciadas;
2 - A tela do recurso deverá dispor uma grade que lista
os usuários do sistema e apresenta suas informações
por colunas que contém controles para ordenação dos
itens da lista;
As colunas que a grade deverá conter são:
. ID
. Editar (Botão)
. Nome Completo
. Nome de Usuário
. e-mail
. Telefone
140
. Departamento
. Suporte (Indicador gráfico)
. Analista (Indicador gráfico)
. Admin (Indicador gráfico)
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - A informação completa de cada item da lista deverá
ser acessada através do botão da coluna “Editar”;
RF12 - Perfis de usuário
5 - A informação completa de um item deverá ser
editada através de formulário específico.
O sistema deverá possuir um modelo de segurança
capaz de realizar o controle de acesso dos usuários aos
seus recursos.
Condições:
1 - O sistema deverá conter em seu modelo de
segurança, perfis de usuário pré-definidos que
estabelecem quais recursos da aplicação estão
disponíveis para determinado usuário;
2 - Uma conta de usuário deverá ser configurável de
forma que se possa habilitar ou desabilitar um perfil
específico.
Os perfis são:
RF13 - Criação/Edição de contas
de usuário
. Solicitante
. Suporte
. Administrador
. Analista RBC
Condições:
1 - O sistema deverá prover o recurso pelo qual os
usuários administradores possam criar ou editar contas
de usuário através de formulários específicos;
2 - Os formulários para criação e edição de contas de
usuário deverão conter os seguintes campos:
. ID (Rótulo)
. Nome Completo (Texto)
. Nome de Usuário (Texto)
. E-mail (Texto)
. Telefone (Texto)
141
RF14 - Gerenciamento de FAQs
. Departamento (Opção)
. Suporte (Opção: Sim/Não)
. Analista RBC (Opção: Sim/Não)
. Administrador (Opção: Sim/Não)
Condições:
1 - O sistema deverá prover o recurso pelo qual as
FAQs possam ser gerenciadas;
2 - A tela do recurso deverá dispor uma grade que lista
as FAQs do sistema e apresenta suas informações por
colunas que contém controles para ordenação dos itens
da lista;
As colunas que a grade deverá conter são:
. ID
. Editar (Botão)
. Questão
. Categoria
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - A informação completa de cada item da lista deverá
ser acessada através do botão da coluna “Editar”;
RF15 - Criação/Edição de FAQs
5 - A informação completa de um item deverá ser
editada através de formulário específico.
Condições:
1 - O sistema deverá prover o recurso pelo qual os
usuários administradores ou analistas possam criar ou
editar FAQs através de formulários específicos;
2 - Os formulários para criação e edição de FAQs
deverão conter os seguintes campos:
RF16 - Gerenciamento de
Questões
. Nº FAQ (Rótulo)
. Questão (Texto)
. Categoria (Opção)
. Resposta (Texto)
Condições:
1 - O sistema deverá prover o recurso pelo qual as
questões como sendo dúvidas postadas por usuários,
possam ser gerenciadas;
142
2 - A tela do recurso deverá dispor uma grade que lista
as questões e apresenta suas informações por colunas
que contém controles para ordenação dos itens da lista;
As colunas que a grade deverá conter são:
. ID
. Editar (Botão)
. Questão
. Status
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - A informação completa de cada item da lista deverá
ser acessada através do botão da coluna “Editar”;
RF17 - Edição de questões
5 - A informação completa de um item deverá ser
editada através de formulário específico.
Condições:
1 - O sistema deverá prover o recurso pelo qual os
usuários administradores ou analistas possam editar
questões através de um formulário específico;
2 - O formulário para edição de questões deverá conter
os seguintes campos:
. Nº Questão (Rótulo)
. Questão (Texto)
. Descrição/Observações (Texto)
. Status (Opção)
RF18 - Gerenciamento do
dicionário de sinônimos
3 - Além dos botões salvar, cancelar e excluir o
formulário deverá dispor o botão “Salvar Como FAQ”,
recurso pelo qual uma questão poderá ser salva como
FAQ diretamente na lista de FAQs.
Condições:
1 - O sistema deverá prover o recurso pelo qual o
dicionário de sinônimos possa ser gerenciado;
2 - A tela do recurso deverá dispor duas grades: a
primeira lista as palavras e a segunda lista os
sinônimos. Ambas as grades apresentam suas
143
informações por colunas que contém controles para
ordenação dos itens da lista;
As colunas que a grade de palavras deverá conter são:
. Palavra
. Editar (Botão)
As colunas que a grade de sinônimos deverá conter
são:
. Sinônimo
. Editar (Botão)
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 50 itens por página;
4 - Cada lista de itens deverá dispor em seu cabeçalho
um botão chamado “Novo”, recurso pelo qual novas
palavras ou sinônimos poderão ser adicionadas;
RF19 - Gerenciamento da lista de
termos ignorados
5 - Cada item da lista poderá ser editado ou excluído
através do botão da coluna “Editar”.
Condições:
1 - O sistema deverá prover o recurso pelo qual a lista
de termos ignorados possa ser gerenciada;
2 - A tela do recurso deverá dispor uma grade que lista
os termos e apresenta suas informações por colunas
que contém controles para ordenação dos itens da lista;
As colunas que a grade deverá conter são:
. Termo
. Editar (Botão)
3 - A grade de itens deverá possuir o recurso de
paginação exibindo por padrão 100 itens por página;
4 - Cada lista de itens deverá dispor em seu cabeçalho
um botão chamado “Novo”, recurso pelo qual novos
termos poderão ser adicionados;
RF20 - Gerenciamento dos
5 - Cada item da lista poderá ser editado ou excluído
através do botão da coluna “Editar”.
Condições:
144
campos globais
1 - O sistema deverá prover o recurso pelo qual os
campos globais da aplicação como sendo os campos de
opção utilizados na maioria dos formulários de criação
e edição, possam sofrer manutenções quando
necessário;
2 - A tela do recurso deverá dispor a lista de opções de
cada campo global através de grades que apresentam
suas informações por colunas contendo controles para
ordenação dos itens da lista;
As colunas que a grade deverá conter são:
. Opção
. Editar (Botão)
3 - Cada lista de itens deverá dispor em seu rodapé um
botão chamado “Novo”, recurso pelo qual novos
termos poderão ser adicionados;
4 - Cada item da lista poderá ser editado ou excluído
através do botão da coluna “Editar”.
Quadro 9 - Requisitos Funcionais – Descrição
Fonte: Elaboração do autor, 2011.
145
APÊNDICE C - REQUISITOS NÃO FUNCIONAIS
Nome
Descrição
RNF01 - Interface do sistema
Condições:
- A interface geral do sistema deverá conter em seu
layout, áreas tais como: cabeçalho, menu lateral de
acesso rápido e rodapé, que estarão sempre visíveis
independente das diversas páginas de conteúdo que
possam ser acessadas.
Condições:
- O tema da interface deverá apresentar uma tonalidade
de cores claras e fundo branco.
Condições:
- A arquitetura do sistema deverá garantir bom
desempenho com até 50 usuários conectados.
RNF02 - Aparência da interface
RNF03 - Desempenho do sistema
Quadro 10 - Requisitos Não Funcionais – Descrição
Fonte: Elaboração do autor, 2011.
146
APÊNDICE D - REGRAS DE NEGÓCIO
Nome
Descrição
RN01 - Acesso ao sistema
Condições:
1 - O acesso ao sistema somente será possível a
usuários (que são funcionários da organização) da rede
local que possuam conta de acesso com login
cadastrado.
Condições:
1 - Conforme o perfil de acesso do usuário corrente
seja ele: Administrador, Analista RBC, Suporte ou
Solicitante, determinados recursos do sistema deverão
ser habilitados ou desabilitados.
Condições:
1 - A tela inicial do sistema será a de autoatendimento;
RN02 - Controle de acesso
RN03 - Forma de atendimento
RN04 - Pesquisa avançada de
chamados
RN05 - Gerenciamento de
chamados
2 - Caso a busca da solução através da base de
conhecimento não tenha obtido êxito, o usuário
poderá:
a) Abrir um chamado de forma convencional;
b) Postar sua dúvida através do recurso “Postar
Dúvida”.
Condições:
1 - Usuários com perfil de Suporte, Analista RBC ou
Administrador terão permissão para pesquisar todos os
chamados do sistema de forma irrestrita;
2 - Usuários com perfil de Solicitante terão permissão
para pesquisar somente os chamados do sistema que
possuam seu nome de usuário informado no campo
Solicitante do formulário de chamados.
Condições:
1 - Usuários com perfil de Suporte ou Administrador
terão permissão para:
a) Visualizar todos os chamados na lista central de
chamados;
b) Utilizar os seguintes campos do formulário de
chamados:
. Status
. Data de Conclusão
. Responsável pelo Atendimento
147
c) Criar, Ler, Editar e Excluir chamados.
RN06 - Gerenciamento de contas
de usuários
RN07 - Gerenciamento da base de
conhecimento
RN08 - Gerenciamento das
configurações
Quadro 11 - Regras de Negócio – Descrição
Fonte: Elaboração do autor, 2011.
2 - Usuários com perfil de Solicitante terão permissão
para:
a) Visualizar somente os chamados na lista central de
chamados que possuam seu nome de usuário
informado no campo Solicitante do formulário de
chamados;
b) Utilizar todos os campos do formulário de
chamados exceto:
. Status
. Data de Conclusão
. Responsável pelo Atendimento
c) Criar, Ler e Editar chamados.
Condições:
1 - Usuários com perfil de Suporte ou Administrador
terão permissão para:
a) Visualizar todas as contas de usuário na lista central
de usuários;
b) Criar, Ler, Editar e Excluir contas de usuário.
Condições:
1 - Usuários com perfil de Analista RBC ou
Administrador terão permissão para:
a) Visualizar todas as FAQs na lista central de FAQ;
b) Criar, Ler, Editar e Excluir FAQs;
c) Visualizar todas as questões na lista central de
questões;
d) Ler, Editar e Excluir questões;
e) Criar, Ler, Editar e Excluir palavras ou sinônimos
da lista central do dicionário de sinônimos;
f) Criar, Ler, Editar e Excluir palavras da lista central
de termos ignorados.
Condições:
1 - Usuários com perfil de Administrador terão
permissão para intervir nas configurações do sistema.
148
APÊNDICE E - CASOS DE USO
Nome
Descrição
Atores
principais
CU01 - Criar conta de
acesso
CU02 - Criar chamado
Ocorre quando um usuário não cadastrado acessa
o sistema pela primeira vez.
Ocorre quando o usuário necessita criar um novo
chamado no sistema.
CU03 - Visualizar
Ocorre quando o usuário necessita visualizar as
chamado
informações de um chamado da lista central de
chamados.
CU04 - Editar chamado Ocorre quando o usuário necessita editar as
informações de um chamado.
CU05 - Excluir
Ocorre quando o usuário necessita excluir um
chamado
chamado da lista central de chamados.
CU06 - Inserir anexo
Ocorre quando o usuário necessita anexar
arquivos em um novo chamado ou em um
chamado existente.
CU07 - Excluir anexo
Ocorre quando o usuário necessita excluir
arquivos anexos de um chamado existente.
CU08 - Pesquisar
Ocorre quando o usuário necessita realizar uma
chamados
pesquisa por chamados.
CU09 - Pesquisar FAQs Ocorre quando o usuário necessita realizar uma
pesquisa por FAQs.
CU10 - Visualizar FAQ Ocorre quando o usuário necessita visualizar as
informações de uma FAQ da lista central de
FAQs ou proveniente de pesquisa (CU10).
CU11 - Pesquisar casos Ocorre quando o usuário necessita realizar uma
similares
pesquisa que utiliza RBC, de modo a recuperar
os casos mais similares que atendam o seu
critério de busca.
CU12 - Visualizar caso Ocorre quando o usuário necessita visualizar as
similar
informações de um caso similar proveniente de
pesquisa (CU12).
CU13 - Postar dúvida
Ocorre quando o usuário necessita enviar sua
dúvida para o Help Desk.
CU14 - Editar questão
Ocorre quando o usuário necessita editar as
informações de uma questão.
CU15 - Salvar questão
Ocorre quando o usuário necessita salvar uma
como FAQ
questão da lista central de questões como uma
Solicitante
Solicitante;
Suporte
Solicitante;
Suporte
Solicitante;
Suporte
Suporte
Solicitante;
Suporte
Solicitante
Solicitante;
Suporte
Solicitante
Solicitante
Solicitante
Solicitante
Solicitante
Analista RBC
Analista RBC
149
CU16 - Excluir questão
CU17 - Criar caso
CU18 - Editar caso
CU19 - Excluir caso
CU20 - Inserir palavra
CU21 - Editar palavra
CU22 - Excluir palavra
CU23 - Inserir
sinônimo
CU24 - Editar sinônimo
CU25 - Excluir
sinônimo
CU26 - Inserir termo
ignorado
CU27 - Editar termo
ignorado
CU28 - Excluir termo
ignorado
CU29 - Criar conta de
usuário
CU30 - Editar conta de
usuário
CU31 - Excluir conta
de usuário
CU32 - Inserir opção
em campo global
CU33 - Editar opção
em campo global
CU34 - Excluir opção
em campo global
nova FAQ.
Ocorre quando o usuário necessita excluir uma
questão da lista central de questões.
Ocorre quando o usuário necessita cadastrar uma
nova FAQ na base de conhecimento do sistema.
Ocorre quando o usuário necessita editar as
informações de uma FAQ da base de
conhecimento.
Ocorre quando o usuário necessita excluir uma
FAQ da base de conhecimento.
Ocorre quando o usuário necessita incluir uma
nova palavra no dicionário de sinônimos.
Ocorre quando o usuário necessita editar uma
palavra do dicionário de sinônimos.
Ocorre quando o usuário necessita excluir uma
palavra do dicionário de sinônimos.
Ocorre quando o usuário necessita incluir um
novo sinônimo no dicionário de sinônimos.
Ocorre quando o usuário necessita editar um
sinônimo do dicionário de sinônimos.
Ocorre quando o usuário necessita excluir um
sinônimo do dicionário de sinônimos.
Ocorre quando o usuário necessita incluir um
novo termo na lista de termos ignorados.
Ocorre quando o usuário necessita editar um
termo da lista de termos ignorados.
Ocorre quando o usuário necessita excluir um
termo da lista de termos ignorados.
Ocorre quando o usuário necessita cadastrar uma
nova conta de usuário.
Ocorre quando o usuário necessita editar as
informações de uma conta de usuário.
Ocorre quando o usuário necessita excluir uma
conta de usuário da lista central de usuários.
Ocorre quando o usuário necessita incluir uma
nova opção em um campo global.
Ocorre quando o usuário necessita editar uma
opção específica de um campo global.
Ocorre quando o usuário necessita excluir uma
opção específica de um campo global.
Quadro 12 - Casos de Uso – Descrição
Fonte: Elaboração do autor, 2011.
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Analista RBC
Suporte;
Administrador
Suporte;
Administrador
Suporte;
Administrador
Administrador
Administrador
Administrador
150
APÊNDICE F - CLASSES DO MOTOR DE BUSCA
InformationRetrieval
using
using
using
using
using
System;
System.Collections;
System.Collections.Generic;
System.Web;
HelpDesk.DAL;
namespace HelpDesk.IR
{
public class InformationRetrieval : Document
{
private string QueryText;
private List<Document> Documents;
private ArrayList StopWords;
private ArrayList FAQs;
private double SimTotal;
public InformationRetrieval()
{
Documents = new List<Document>();
}
// GetSimilarDocuments
public List<Document> GetSimilarDocuments(string query, string category)
{
QueryText = query;
DBAccess dba = new DBAccess();
StopWords = dba.GetStopWords();
FAQs = dba.GetDocuments(category);
SimTotal = 0;
SetDocuments();
if (SimTotal > 0)
{
Documents.Sort(delegate(Document doc1, Document doc2)
{
return doc1.Sim.CompareTo(doc2.Sim);
});
Documents.Reverse();
return Documents;
}
else
return null;
}
// SetDocuments
void SetDocuments()
{
// Consulta
Document Query = new Document();
Query.Text = QueryText;
Query.SetTerms(Query.Text, StopWords);
List<Document> ListQuery = new List<Document>();
151
ListQuery.Add(Query);
// Documentos
foreach (string[] att in FAQs)
{
Document doc = new Document();
doc.ID = att[0];// ID
doc.Text = att[1];// Questão
doc.SetTerms(att[1], StopWords);
Documents.Add(doc);
}
CalculateSimilarity(Query, ListQuery);
CalculateSimilarity(Query, Documents);
}
// CalculateSimilarity
void CalculateSimilarity(Document query, List<Document> docs)
{
foreach (Document doc in docs)
{
int max = 0, freq, n;
// TF
foreach (string queryTerm in query.Terms)
{
freq = 0;
// Termos da consulta
foreach (string term in doc.Terms)
if (queryTerm.ToLower() == term.ToLower())
freq++;
if (freq == 0)
{
// Palavras associadas ao termo da consulta
DBAccess dba = new DBAccess();
ArrayList words = dba.GetWordsBySynonym(queryTerm.ToLower());
foreach (string word in words)
{
foreach (string term in doc.Terms)
if (word.ToString().ToLower() == term.ToLower())
freq++;
// Sai do laço
if (freq > 0)
goto Continue;
}
}
Continue:
doc.TF.Add(freq);
}
// max
foreach (int tf in doc.TF)
if (tf > max)
max = tf;
doc.Max = max;
152
// RF, n, IDF, W
for (int i = 0; i < query.Terms.Count; i++)
{
if (doc.Max > 0)// RF
doc.RF.Add(doc.TF[i] / Convert.ToDouble(doc.Max));
else
doc.RF.Add(0);
n = GetTermFrequencyInAllDocuments(query.Terms[i]);// n
if (n > 0 && FAQs.Count > n)// IDF
doc.IDF.Add(Math.Log10(FAQs.Count / n));
else
doc.IDF.Add(1);
doc.W.Add(doc.RF[i] * doc.IDF[i]);// W
}
// Sim
double s1 = 0, s2 = 0, s3 = 0;// Somadores
for (int j = 0; j < doc.W.Count; j++)
{
s1 += doc.W[j] * query.W[j];
s2 += Math.Pow(doc.W[j], 2);
s3 += Math.Pow(query.W[j], 2);
}
if (s1 > 0)
doc.Sim = s1 / (Math.Sqrt(s2) * Math.Sqrt(s3));
SimTotal += doc.Sim;
}
}
// GetTermFrequencyInAllDocuments
public int GetTermFrequencyInAllDocuments(string queryTerm)
{
int n = 0, freq = 0;
foreach (Document doc in Documents)
{
// Termos da consulta
foreach (string term in doc.Terms)
if (queryTerm.ToLower() == term.ToLower())
freq++;
if (freq == 0)
{
// Palavras associadas ao termo da consulta
DBAccess dba = new DBAccess();
ArrayList words = dba.GetWordsBySynonym(queryTerm.ToLower());
foreach (string word in words)
{
foreach (string term in doc.Terms)
if (word.ToLower() == term.ToLower())
freq++;
// Sai do laço
if (freq > 0)
goto Continue;
153
}
}
Continue:
n += freq;
freq = 0;
}
return n;
}
}
}
Document
using
using
using
using
using
using
using
System;
System.Globalization;
System.Collections;
System.Collections.Generic;
System.Web;
HelpDesk.DAL;
System.Text;
namespace HelpDesk.IR
{
public class Document
{
private string id;
private string text;
private List<string> terms;
private List<int> tf;// Term Frequency in Document
private int max;// Max Term Frequency in Document
private List<double> rf;// Relative Frequency
private List<double> idf;// Inverse Document Frequency
private List<double> w;// Weight
private double sim;// Similarity
public Document()
{
id = "";
text = "";
terms = new List<string>();
sim = 0;
tf = new List<int>();
rf = new List<double>();
idf = new List<double>();
w = new List<double>();
}
public string ID
{
get { return id; }
set { id = value; }
}
public string Text
{
get { return text; }
154
set { text = value; }
}
public List<string> Terms
{
get { return terms; }
set { terms = value; }
}
public List<int> TF
{
get { return tf; }
set { tf = value; }
}
public int Max
{
get { return max; }
set { max = value; }
}
public List<double> RF
{
get { return rf; }
set { rf = value; }
}
public List<double> IDF
{
get { return idf; }
set { idf = value; }
}
public List<double> W
{
get { return w; }
set { w = value; }
}
public double Sim
{
get { return sim; }
set { sim = value; }
}
// SetTerms
public void SetTerms(string text, ArrayList stopWords)
{
ArrayList words = RemoveStopWords(text, stopWords);
foreach (string word in words)
{
Terms.Add(word.ToLower().TrimEnd('s'));// Torna a palavra singular
}
}
// RemoveStopWords
public ArrayList RemoveStopWords(string doc, ArrayList stopWords)
{
doc = RemoveSymbols(doc);
string[] words = doc.Split(' ');
ArrayList terms = new ArrayList();
155
bool stop;
for (int i = 0; i < words.Length; i++)
{
stop = false;
foreach (string stopWord in stopWords)
if (words[i].ToLower() == stopWord.ToLower())
stop = true;
if (!stop)
terms.Add(words[i]);
}
return terms;
}
public string RemoveSymbols(string inputString)
{
// Remove acentuação
if ((inputString == "") || (inputString == null))
return "";
string normalizedString = inputString.Normalize(NormalizationForm.FormD);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < normalizedString.Length; i++)
{
UnicodeCategory uc =
CharUnicodeInfo.GetUnicodeCategory(normalizedString[i]);
if (uc != UnicodeCategory.NonSpacingMark)
sb.Append(normalizedString[i]);
}
// Remove caracteres especiais
string outString = sb.ToString().Normalize(NormalizationForm.FormC);
char[] stopSymbols = "~!@#$%^&*()_+={}|[]\\:\";'<>?,./?°º₢ª§¬¢£³²¹".ToCharArray();
foreach (char c in stopSymbols)
if (outString.Contains(c.ToString()))
outString = outString.Replace(c.ToString(), "");
return outString;
}
}
}
156
APÊNDICE G - QUESTIONÁRIO DA PESQUISA
1 - Você considera importante que sistemas de atendimento como help desk que são
orientados por especialistas, também possuam recursos de autoatendimento orientados por
máquina?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Comentário (opcional):
2 - Você acredita que sistemas tutoriais de autoatendimento reduzem a dependência dos
usuários com o setor de Help Desk?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Comentário (opcional):
3 - Você acredita que sistemas tutoriais de autoatendimento reduzem significativamente o
número de registros de incidentes (abertura de chamados)?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Comentário (opcional):
4 - Considerando um sistema de help desk com ótimos recursos de autoatendimento que lhe
forneça a resposta necessária para o problema de forma clara e didática, você prefere:
a) Utilizar o autoatendimento
157
b) Utilizar o autoatendimento sempre que possível
c) Utilizar o autoatendimento eventualmente
d) Abrir um chamado e esperar o atendimento
Comentário (opcional):
5 - Com relação ao protótipo apresentado, você considera eficaz a usabilidade no que diz
respeito à forma com que você e o sistema interagem, ou seja, a ferramenta torna fácil o
processo de exposição do problema e obtenção/compreensão da resposta?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Comentário (opcional):
6 - Você considera que o protótipo apresentado atende aos requisitos da proposta, ou seja,
um sistema com recursos de autoatendimento eficiente que irá minimizar o número de
chamados de help desk?
a)
b)
c)
d)
e)
Concordo fortemente
Concordo
Indiferente
Discordo
Não sei opinar
Comentário (opcional):
Dê sua opinião através de comentários, sugestões ou críticas sobre a proposta ou o protótipo
apresentado.
Muito Obrigado!
158
Download

Trabalho de Conclusão de Curso