UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO SISTEMA PARA SERVICE DESK COM A UTILIZAÇÃO DAS MELHORES PRÁTICAS DO ITIL E APLICAÇÃO DA TÉCNICA DE MINERAÇÃO DE TEXTO JARDEL DA SILVA BLUMENAU 2014 2014/2-06 JARDEL DA SILVA SISTEMA PARA SERVICE DESK COM A UTILIZAÇÃO DAS MELHORES PRÁTICAS DO ITIL E APLICAÇÃO DA TÉCNICA DE MINERAÇÃO DE TEXTO Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação— Bacharelado. Prof. Cláudio Ratke, Mestre – Orientador BLUMENAU 2014 2014/2-06 SISTEMA PARA SERVICE DESK COM A UTILIZAÇÃO DAS MELHORES PRÁTICAS DO ITIL E APLICAÇÃO DA TÉCNICA DE MINERAÇÃO DE TEXTO Por JARDEL DA SILVA Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: ______________________________________________________ Prof. Cláudio Ratke, Mestre – Orientador, FURB Membro: ______________________________________________________ Prof. Everaldo Artur Grahl, Mestre – FURB Membro: ______________________________________________________ Prof. Wilson Pedro Carli, Mestre – FURB Blumenau, 2 de dezembro de 2014. Dedico este trabalho a todos aos familiares e amigos, especialmente aqueles que ajudaram diretamente na realização deste. me AGRADECIMENTOS A Deus, pelo seu imenso amor e graça. À minha família, que soube entender a minha ausência em momentos importantes, devido a concentração necessária para a realização deste trabalho. Aos amigos, que entenderam a minha ausência necessária para a realização deste trabalho. Ao meu orientador, professor Cláudio Ratke, por ter compartilhado seu conhecimento e por contribuir com excelentes ideias para o desenvolvimento deste trabalho. Aos professores do Departamento de Sistemas e Computação da Universidade Regional de Blumenau por suas contribuições durante os semestres letivos e pelos valores transmitidos durante o curso, certamente irei lembrá-los por toda a vida. A minha namorada Eduarda, por ser paciente e por me cobrar comprometimento na realização deste. A empresa Via Blumenau Indústria e Comércio, que contribuiu financeiramente para a conclusão deste curso, agradeço o auxílio que a mim foi disponibilizado, todos terão minha eterna gratidão. Procure ser uma pessoa de valor, em vez de procurar ser uma pessoa de sucesso. O sucesso é consequência. Albert Einstein RESUMO Este trabalho consiste na criação de um Sistema para Service Desk fundamentado nas boas práticas do Information Technology Infrastructure Library (ITIL) e que utiliza a técnica de mineração de texto para auxílio nas buscas por erros conhecidos, incidentes e problemas registrados no sistema. O objetivo do sistema é concentrar as informações referentes aos atendimentos realizados pela equipe de Service Desk, para que posteriormente estas informações sejam utilizadas na resolução de novos atendimentos. A utilização da técnica de mineração de texto visa otimizar as funções de busca retornando ao usuário dados mais adequados as pretensões da busca. Para o desenvolvimento do sistema utilizou-se a linguagem de programação Java, com banco de dados Microsoft SQL Server. Como resultado, tem-se um sistema que concentra as informações relacionadas aos atendimentos do Service Desk, seguindo as boas práticas do ITIL, onde as buscas do sistema são realizadas de forma inteligente e retornam resultados que melhor atende às necessidades dos usuários. Palavras-chave: Service Desk. ITIL. Mineração de texto. ABSTRACT This paper consists in the creation of a Service Desk System based on the Technology Infrastructure Library (ITIL) good practices, which uses the text mining technique to assist with the search for known errors, incidents and problems logged in the system. The goal of the system is to concentrate the information related to services performed by the Service Desk team so that this information can be used to solve new appointments. Using the text mining technique to optimize the search function, thus giving the user more suitable data relating to said search. The Java programming language with the Microsoft SQL Server database were used to develop the system. As a result, there is a system that concentrates the information related to Service Desk calls, following good ITIL practices, where the system searches are performed intelligently and return results that best meets the needs of users. Key-words: Service Desk. ITIL. Text mining. LISTA DE FIGURAS Figura 1 - Estágios do ITIL ...................................................................................................... 16 Figura 2 - Arquitetura de um Sistema de Mineração de Textos ............................................... 20 Figura 3 - Cadastro de Incidente e sua solução ........................................................................ 22 Figura 4 - Cadastro de Problema e solução .............................................................................. 23 Figura 5 - Registro de Problemas ............................................................................................. 24 Figura 6 - Diagrama dos principais Casos de Uso ................................................................... 28 Figura 7 - Diagrama dos Casos de Uso de emissão de relatórios ............................................. 28 Figura 8 - Modelo Entidade Relacionamento ........................................................................... 29 Figura 9 - Classe Java de conexão com o banco de dados ....................................................... 31 Figura 10 - Função criada para retornar palavra no singular .................................................... 32 Figura 11 - XML do relatório de clientes ................................................................................. 33 Figura 12 - Diagrama de atividades do processo de mineração de texto do sistema ............... 34 Figura 13 - Tela de login do sistema ........................................................................................ 35 Figura 14 - Tela do menu principal .......................................................................................... 35 Figura 15 - Tela de cadastro de cliente ..................................................................................... 36 Figura 16 - Tela de cadastro de usuário .................................................................................... 37 Figura 17 - Fragmento do código fonte do cadastro de usuário .............................................. 38 Figura 18 - Tela de registro de incidente .................................................................................. 38 Figura 19 - Tela de registro de problema ................................................................................. 39 Figura 20 - Tela de cadastro de erro conhecido........................................................................ 40 Figura 21 - Tela de visualização de erros conhecidos cadastrados .......................................... 40 Figura 22 - Tela de visualização de incidentes registrados ...................................................... 41 Figura 23 - Tela de visualização de problemas registrados ...................................................... 42 Figura 24 - Tela de cadastro de item de configuração .............................................................. 42 Figura 25 - Tela de cadastro de palavras sem significado ........................................................ 43 Figura 26 - Tela de cadastro de sinônimos do negócio ............................................................ 43 Figura 27 - Tela de cadastro de sinônimos do português ......................................................... 44 Figura 28 - Tela de relatório de incidentes cadastrados ........................................................... 44 Figura 29 - Tela de relatório de problemas cadastrados ........................................................... 45 Figura 30 - Fragmento do código de tratamento de sinônimos ................................................ 45 Figura 31 - Fragmento do código da função de redução adverbial .......................................... 46 Figura 32 - Fragmento do código da função de redução de superlativo .................................. 46 Figura 33 - Fragmento de visualização de erros conhecidos com aplicação de mineração de texto ....................................................................................................................... 47 Figura 34 - Código SQL de busca após execução da procedure .............................................. 47 LISTA DE QUADROS Quadro 1 - Requisitos funcionais ............................................................................................. 26 Quadro 2 - Requisitos não funcionais ...................................................................................... 27 Quadro 3 - Comparativo entre sistema desenvolvido e trabalhos correlatos ........................... 49 Quadro 4 - Descrição do caso de uso Efetuar login ................................................................. 55 Quadro 5 - Descrição do caso de uso Cadastrar usuário do sistema ........................................ 55 Quadro 6 - Descrição de caso de uso Cadastrar clientes .......................................................... 56 Quadro 7 - Descrição do caso de uso Registrar incidentes....................................................... 57 Quadro 8 - Descrição do caso de uso Registrar problemas ...................................................... 57 Quadro 9 - Descrição do caso de uso Adicionar trâmite em incidente..................................... 58 Quadro 10 - Descrição do caso de uso Adicionar trâmite em problema .................................. 58 Quadro 11 - Descrição do caso de uso Listar erros conhecidos ............................................... 59 Quadro 12 - Descrição do caso de uso Cadastrar erro conhecido ............................................ 59 Quadro 13 - Descrição do caso de uso Cadastrar item de configuração .................................. 60 Quadro 14 - Descrição do caso de uso Listar incidentes .......................................................... 60 Quadro 15 - Descrição do caso de uso Listar problemas ......................................................... 61 Quadro 16 - Descrição do caso de uso Cadastrar sinônimos do negócio ................................. 61 Quadro 17 - Descrição do caso de uso Cadastrar sinônimos do português .............................. 62 Quadro 18 - Descrição do caso de uso Cadastrar palavras sem significado............................. 62 Quadro 19 - Descrição do caso de uso Gerar relatório de usuários .......................................... 63 Quadro 20 - Descrição do caso de uso Gerar relatório de clientes ........................................... 63 Quadro 21 - Descrição do caso de uso Gerar relatório de incidentes ....................................... 63 Quadro 22 - Descrição do caso de uso Gerar relatório de problemas ...................................... 64 Quadro 23 - Dicionário da tabela cliente .................................................................................. 65 Quadro 24 - Dicionário de dados da tabela usuario.................................................................. 65 Quadro 25 - Dicionário de dados da tabela incidente............................................................... 65 Quadro 26 - Dicionário de dados da tabela problema .............................................................. 66 Quadro 27 - Dicionário de dados da tabela tramiteIncidente ................................................... 66 Quadro 28 - Dicionário de dados da tabela tramiteProblema................................................... 67 Quadro 29 - Dicionário de dados da tabela itemConfiguracao ................................................ 67 Quadro 30 - Dicionário de dados da tabela erroConhecido ..................................................... 67 Quadro 31 - Dicionário de dados da tabela sinonimos1 ........................................................... 68 Quadro 32 - Dicionário de dados da tabela sinonimos2 ........................................................... 68 Quadro 33 - Dicionário de dados da tabela palavraSemSignificado ........................................ 68 LISTA DE SIGLAS IC – Item de Configuração ITIL – Information Technology Infrastructure Library MER – Modelo Entidade Relacionamento PHP – Hipertext Preprocessor SGBD – Sistema Gerenciador de Banco de Dados SLA – Service Level Agreement SQL – Structured Query Language TI – Tecnologia da Informação XML – Extensible Markup Language SUMÁRIO 1 INTRODUÇÃO .................................................................................................................. 12 1.1 OBJETIVOS DO TRABALHO ......................................................................................... 13 1.2 ESTRUTURA DO TRABALHO ....................................................................................... 13 2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 15 2.1 ITIL.................................................................................................................................... 15 2.1.1 Operação de Serviço ........................................................................................................ 17 2.1.2 Gestão de Incidentes ........................................................................................................ 17 2.1.3 Service Desk .................................................................................................................... 17 2.1.4 Gestão de Problemas ....................................................................................................... 18 2.1.5 Erros Conhecidos ............................................................................................................ 18 2.2 MINERAÇÃO DE TEXTO .............................................................................................. 19 2.2.1 Tratamento de Sinônimos ................................................................................................ 21 2.2.2 Tratamento de Stop Words .............................................................................................. 21 2.2.3 Tratamento de Radicais ................................................................................................... 21 2.3 TRABALHOS CORRELATOS ........................................................................................ 21 3 DESENVOLVIMENTO DO SISTEMA .......................................................................... 25 3.1 LEVANTAMENTO DE INFORMAÇÕES ....................................................................... 25 3.2 ESPECIFICAÇÃO ............................................................................................................ 26 3.2.1 Requisitos Funcionais ...................................................................................................... 26 3.2.2 Requisitos Não Funcionais .............................................................................................. 27 3.2.3 Diagrama de Casos de Uso .............................................................................................. 28 3.2.4 Modelo Entidade Relacionamento................................................................................... 29 3.3 IMPLEMENTAÇÃO ......................................................................................................... 30 3.3.1 Técnicas e ferramentas utilizadas .................................................................................... 31 3.1.1.1 Java ............................................................................................................................... 31 3.1.1.2 Microsoft SQL Server................................................................................................... 32 3.1.1.3 iReports ......................................................................................................................... 32 3.1.1.4 Mineração de Texto ...................................................................................................... 33 3.3.2 Operacionalidade da implementação ............................................................................... 34 3.4 RESULTADOS E DISCUSSÃO ....................................................................................... 47 4 CONCLUSÕES .................................................................................................................. 50 4.1 EXTENSÕES .................................................................................................................... 50 REFERÊNCIAS ..................................................................................................................... 52 APÊNDICE A – Descrição dos Casos de Uso ...................................................................... 55 APÊNDICE B – Descrição do Dicionário de Dados ............................................................ 65 12 1 INTRODUÇÃO Por muitos anos, algumas organizações puderam continuar seus negócios, ainda que tivessem pouco apoio da Tecnologia da Informação (TI). Hoje a realidade é diferente, a TI é um fator crítico de sucesso para a organização, e em até muitos casos acaba sendo seu diferencial competitivo no mercado. (TRIBUNAL DE JUSTIÇA DO DISTRITO FEDERAL E DOS TERRITÓRIOS, 2012). Segundo Melo (2008) a TI tem uma importância sem precedentes para o sucesso das organizações, pois, é por meio dela que as empresas podem melhorar seus fluxos de informações, integrar seus negócios, buscar e desenvolver novos relacionamentos com outras organizações e melhorar seu desempenho, de forma a manter sua sobrevivência num mercado cada vez mais competitivo. O uso de sistemas que apoiem a gestão de serviços é um fator importante para a eficiência do setor sobre a organização. Na área de Service Desk, o registro das atividades realizadas para a resolução dos incidentes é necessário, para que seja possível a formação da base de dados de erros conhecidos, que pode auxiliar os integrantes do setor, gerando uma poderosa ferramenta de pesquisa para resolução dos incidentes, eliminando assim, a necessidade de uma nova pesquisa em busca de solução para o mesmo. A falta de um histórico dos atendimentos realizados pela equipe de Service Desk de uma organização, implica na dependência do conhecimento dos integrantes da equipe, mesmo que exista um meio formal de registro dos atendimentos, a centralização e disponibilização destes dados aos integrantes da equipe, impacta na eficiência e agilidade da resolução dos incidentes e cumprimento dos acordos de nível de serviço. O Information Technology Infrastructure Library (ITIL) fornece um guia consistente e compreensivo de melhores práticas na gestão de serviços de TI. ITIL consiste em recomendações e orientação para obter qualidade dos serviços de TI e para acomodação e ambientação de necessidades para suportar as TI. Não só apresenta um modelo de como as atividades de gestão de serviços interagem umas com as outras, como também apresenta uma forma de integrar e estruturar processos existentes (FARINHA, 2005). Para auxílio no gerenciamento dos serviços, o sistema desenvolvido faz uso da técnica de mineração de texto, a fim de melhor atender as expectativas do usuário na utilização das opções de busca por incidentes, problemas ou erros conhecidos registrados no sistema. 13 Segundo Morais e Ambrósio (2007), a mineração de textos é um processo de descoberta de conhecimento, que utiliza técnicas de análise e extração de dados a partir de textos, frases ou apenas palavras. Envolve a aplicação de algoritmos computacionais que processam textos e identificam informações úteis e implícitas, que normalmente não poderiam ser recuperadas utilizando métodos tradicionais de consulta, pois a informação contida nestes textos não pode ser obtida de forma direta, uma vez que, em geral, estão armazenadas em formato não estruturado. O presente trabalho visa demonstrar a implementação de um sistema para Service Desk fundamentado nas práticas de ITIL, que faça o registro dos incidentes e problemas atendidos pela equipe de TI de uma organização, gerando assim, uma base de erros conhecidos que pode auxiliar na resolução de incidentes e problemas futuros. O sistema irá fazer uso da técnica de mineração de texto sobre as opções de busca disponíveis no sistema, a fim de disponibilizar ao usuário, dados que melhor satisfaçam as suas necessidades para o adequado gerenciamento do departamento. 1.1 OBJETIVOS DO TRABALHO O objetivo deste trabalho é o desenvolvimento de um sistema para Service Desk que faça o registro dos atendimentos realizados pelo setor, fundamentado nas práticas de ITIL e que utilize a técnica de mineração de texto sobre as consultas realizadas nos registros do sistema, a fim de atender de forma eficaz as buscas realizadas pelo usuário. Os objetivos específicos do trabalho são: a) efetuar o registro dos incidentes atendidos pelo setor de Service Desk; b) efetuar o registro dos problemas atendidos pelo setor de Service Desk; c) gerar uma base de consulta de erros conhecidos; d) gerar relatórios para mensurar as ocorrências atendidas pelo setor; e) realizar mineração de texto nas opções de busca para melhorar a qualidade dos resultados. 1.2 ESTRUTURA DO TRABALHO Este trabalho está estruturado em quatro capítulos que estão descritos a seguir. No primeiro capítulo tem-se a introdução ao tema principal deste trabalho com a 14 apresentação da justificativa e dos objetivos. No segundo capítulo apresenta-se a fundamentação teórica pesquisada sobre ITIL, Service Desk, Gerenciamento de Incidentes, Gerenciamento de Problemas, Mineração de Texto, Erros Conhecidos e trabalhos correlatos. O terceiro capítulo apresenta o desenvolvimento do Sistema para Service Desk com fundamentos ITIL e Mineração de Texto iniciando-se com o levantamento de informações, tendo na seqüência a especificação, implementação e por fim resultados e discussão. No quarto capítulo tem-se as conclusões deste trabalho bem como apresentam-se sugestões para trabalhos futuros. 15 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo aborda assuntos a serem apresentados nas seções a seguir, tais como ITIL, Service Desk, Gerenciamento de Incidentes, Gerenciamento de Problemas, Erros Conhecidos, Mineração de Texto, além de trabalhos correlatos. 2 .1 ITIL O ITIL provê um abrangente e consistente conjunto de melhores práticas para a identificação de processos da área de TI e o alinhamento dos seus serviços às necessidades da organização, promovendo uma abordagem qualitativa para o uso econômico, efetivo, eficaz e eficiente da infraestrutura de TI (MAGALHÃES; PINHEIRO, 2007, p. 30). A adoção do ITIL pode oferecer aos usuários uma enorme gama de benefícios que incluem (LANUNIVERSITY, [2014?]): a) melhoria nos Serviços de TI; b) custos reduzidos; c) melhoria da satisfação do cliente através de uma abordagem mais profissional para a prestação de serviços; d) melhoria da produtividade; e) melhor utilização de competências e experiência; f) melhoria da prestação de serviços de terceiros. Segundo Magalhães e Pinheiro (2007, p. 61), o ITIL encontra-se amplamente consagrado como o caminho mais seguro e bem sucedido para a busca por níveis mais elevados de desempenho no Gerenciamento dos Serviços de TI. Os processos descritos no ITIL abrangem os três ciclos de evolução do posicionamento da área de TI em relação a sua contribuição para a geração de valor para a organização. Na Figura 1 estão ilustrados os ciclos contidos no ITIL. 16 Figura 1 - Estágios do ITIL Fonte: Adaptado de ITIL.ORG ([2011?]). Os objetivos dos ciclos de vida contidos no ITIL, conforme Freitas (2010): a) Estratégia de Serviço – manter e prover a qualidade do serviço de TI através de um ciclo constante de acordos, monitoramento e relatórios sobre o andamento dos serviços de TI e tomar ações para erradicar serviços sem qualidade; b) Desenho de Serviço – desenhar os serviços de TI apropriados ou inovadores incluindo suas arquiteturas, processos, políticas e documentação para atender os requerimentos atuais e futuros do negócio; c) Transição de Serviço – planejamento do projeto de implantação dos serviços que serão suportados posteriormente no ciclo de Operação de Serviço; d) Operação de Serviço – coordena e conduz as atividades e os processos necessários para entregar e gerenciar os serviços, de acordo com os níveis requeridos pelos 17 clientes e pelo negócio; e) Melhoria de Serviço Continuada – alinhar e realinhar continuamente os serviços de TI com o negócio e com os requerimentos de mudanças no negócio pela implementação de melhorias nos Serviços de TI. A Melhoria de Serviço Continuada foca em como melhorar a eficiência e eficácia dos processos do Gerenciamento de Serviços de TI a um custo justificado. 2.1.1 Operação de Serviço A Operação de Serviço é gerida e suportada, de modo a atender os níveis de serviço acordados. Através da central de serviços é realizada gestão dos pedidos realizados pelos usuários, são detectados eventos através da monitorização, restabelecidas as interrupções não programadas dos serviços, evitadas as causas dos incidentes e minimizados os impactos dos incidentes não previstos (FERREIRA, 2011, p. 21). 2.1.2 Gestão de Incidentes O processo de gestão de incidentes trata de todos os incidentes que possam provocar ou que estejam a provocar interrupções ou reduções não planejadas na qualidade dos serviços de TI. Uma falha em um Item de Configuração (IC), mesmo que não afete um serviço, também é considerado um incidente (FERREIRA, 2011, p. 146). 2.1.3 Service Desk Segundo Nóbrega (2007) o Service Desk não é um processo e sim uma função de TI. Geralmente conhecida como “Suporte ao Usuário” ou “Help Desk”, esta função envolve fornecer respostas às questões de usuários e soluções de problemas, registro formal dos 18 problemas, resolução, monitoramento, análise de tendência e priorização estão também incluídos. O Service Desk também é conhecido como Central de Serviços, é o ponto inicial de contato com a organização de TI. Os livros mais antigos do ITIL referiam-se a ela como Central de Assistência. A principal tarefa da Central de Assistência era registrar, resolver e monitorar os problemas (ITSMF, 2005). A estrutura organizacional da atividade de Service Desk é um fator decisivo para a satisfação dos clientes, tendo em vista que ela define os aspectos fundamentais de autoridade e de responsabilidade, que vão influenciar a produtividade e a qualidade dos relacionamentos entre as pessoas que operam e gerenciam os processos de suporte com os clientes finais dos serviços de TI entregues (MELENDEZ, 2011). 2.1.4 Gestão de Problemas O gerenciamento de problemas identifica e remove erros do ambiente de TI, através da análise dos incidentes registrados no gerenciamento de incidentes, a fim de garantir uma estabilidade máxima dos serviços de TI (SORTICA; CLEMENTI; CARVALHO, 2004). O Gerenciamento de problemas fundamentalmente visa identificar a causa raiz dos incidentes, encontrando soluções de contorno e criando o chamado “erro conhecido”. A solução definitiva é cadastrada no banco de dados de erro conhecido, e caso necessário, cria uma requisição de mudanças, para a obtenção de uma solução permanente (GOMES; PEREIRA, 2011). 2.1.5 Erros Conhecidos Erro conhecido é a causa de um problema já conhecido, resultante da análise realizada anteriormente. Os erros conhecidos são armazenados na Base de Dados de Erros Conhecidos e utilizados para agilizar o atendimento dos incidentes que apresentam os mesmos sintomas dos que levaram à definição e ao registro do erro conhecido (MAGALHÃES; PINHEIRO, 2007, p. 136). 19 2 .2 MINERAÇÃO DE TEXTO A mineração de dados é o processo de descoberta de informações acionáveis em grandes conjuntos de dados. A mineração de dados usa análise matemática para derivar padrões e tendências que existem nos dados. Normalmente, esses padrões não podem ser descobertos com a exploração de dados tradicional pelo fato de as relações serem muito complexas ou por haver muitos dados (MICROSOFT DEVELOPER NETWORK, 2014). A Mineração de Texto pode se definir como um processo de conhecimento intensivo em que um usuário interage com uma coleção de documentos ao longo do tempo por meio de um conjunto de ferramentas de análise. A Mineração de Texto procura extrair informações úteis a partir de fontes de dados, através de exploração e identificação de padrões interessantes (FELDMAN; SANGER, 2006, p. 1, tradução nossa). A área de Mineração de Textos tem relação com outra grande área chamada Mineração de Dados. Enquanto esta se preocupa em descobrir padrões e informações existentes em banco de dados, a Mineração de Textos é um conjunto de métodos usados para explorar, organizar, achar e descobrir informações em uma base de textos (MARTINS; AZEVEDO; BASTOS, 2010, p. 2). Os sistemas de mineração de textos baseiam-se em rotinas de pré-processamento, algoritmos para descoberta de padrões, e elementos para apresentação dos resultados. As etapas que compõem a arquitetura de um sistema para mineração de textos são: operações de pré-processamento, geração de documentos processados, mineração e apresentação dos resultados. O usuário do sistema interage com a etapa de pré-processamento, com o núcleo de mineração e com a apresentação dos resultados (MARTINS; AZEVEDO; BASTOS, 2010). Na Figura 2 é ilustrada a arquitetura de um sistema para Mineração de Textos sugerida por Alvares (2005). 20 Figura 2 - Arquitetura de um Sistema de Mineração de Textos Fonte: Alvares (2005). 21 2.2.1 Tratamento de Sinônimos Segundo Wives (1999, p. 11) o uso da linguagem natural quotidiana como o português, permite que as pessoas utilizem diversas palavras diferentes para indicar um mesmo objeto, com isso o vocabulário utilizado pelo autor pode diferir do vocabulário utilizado pela pessoa que realiza a busca, isso dificulta a localização da informação, já que as pessoas acabam ficando sem saber que palavras devem usar para se especificar o assunto que desejam obter. 2.2.2 Tratamento de Stop Words Na eliminação de Stop Words, algumas palavras informadas nos campos de buscas são desconsideradas para aplicação da técnica de Mineração de Texto. Segundo Wives (1999, p. 38) nestes casos, é comum excluir estas palavras, pois elas influenciam no processo, além de torná-lo mais lento, já que com elas há um número maior de características para serem analisadas. 2.2.3 Tratamento de Radicais O tratamento de radicais visa tratar as palavras, para que os resultados exibidos não sejam prejudicados pelo uso de radicais apresentados no texto de busca. Segundo Wives (1999, p. 25) é interessante eliminar as diferentes variações morfológicas de uma palavra (singular ou plural por exemplo), utilizando somente seu radical. 2 .3 TRABALHOS CORRELATOS Pode-se citar como trabalhos correlatos as monografias realizadas pelos alunos Carla Andriéli Fink e Klauber Scheffler Fischer, ambos concluintes do curso de Sistemas de 22 Informação na Universidade Regional de Blumenau, e também será mencionado um software que possui características semelhantes ao sistema desenvolvido. O trabalho de Fischer (2012) foi o desenvolvimento de uma aplicação para Help Desk com a técnica de Mineração de Texto aplicada sobre uma base de dados de erros conhecidos, buscando resultados de forma eficaz. O trabalho foi desenvolvido na linguagem de programação Java e utiliza o banco de dados Hibernate. A aplicação desenvolvida é semelhante ao presente trabalho, devido ao uso da técnica de Mineração de Texto e pelo uso de base de erros conhecidos, que também estarão presentes na aplicação desenvolvida. Na Figura 3, o cadastro de incidente e sua solução de Fischer (2012). Figura 3 - Cadastro de Incidente e sua solução Fonte: Fischer (2012). O trabalho de Fink (2010) foi o desenvolvimento de uma aplicação web que faz a classificação de incidentes registrados em um Service Desk utilizando a técnica de Mineração de Dados, visando minimizar tempo, diminuir erros e automatizar a atividade. A aplicação foi desenvolvida para a plataforma web na linguagem PHP e banco de dados MySQL e utiliza como modelo de referência as boas práticas de ITIL para a correta classificação dos incidentes. Este trabalho é semelhante à aplicação por ser desenvolvido com o uso da técnica de Mineração de Texto em um ambiente Service Desk e por usar o modelo ITIL de boas práticas, como referência na classificação de incidentes. Na Figura 4, o cadastro de problema e solução de Fink (2010). 23 Figura 4 - Cadastro de Problema e solução Fonte: Fink (2010). Outro trabalho correlato é o MillDesk, um sistema desenvolvido pela empresa Setrion Saas Aplications que foi desenvolvido na linguagem de programação Hypertext preprocessor (PHP) e utiliza PostgreSQL como banco de dados. Trata-se de uma ferramenta comercial, baseada nas melhores práticas de ITIL, que possui opções de registro de incidentes, problemas e consultas de soluções, a aplicação está disponível na plataforma web. O sistema MillDesk é comparado ao sistema aqui desenvolvido por ser fundamentado nas práticas de ITIL e por fazer o registro de incidentes e problemas, gerando uma base de erros conhecidos que podem ser consultados para resolução de incidentes futuros. No site do fabricante é possível se registrar e obter 30 dias para avaliar a ferramenta gratuitamente. Na Figura 5 o registro de problemas disponível na ferramenta MillDesk (SETRION SAAS APLICATIONS, 2014). 24 Figura 5 - Registro de Problemas Fonte: Setrion Saas Aplications (2014). 25 3 DESENVOLVIMENTO DO SISTEMA Neste capítulo estão descritos os aspectos técnicos utilizados no desenvolvimento do sistema, bem como o levantamento de informações: requisitos funcionais e não funcionais. Além dos diagramas utilizados no desenvolvimento: diagrama de casos de uso, modelo de entidade e relacionamento e diagrama de atividades. Estão descritas também as técnicas e ferramentas utilizadas, a operacionalidade da implementação e os resultados obtidos. 3.1 LEVANTAMENTO DE INFORMAÇÕES Foi desenvolvido um sistema que atende as necessidades de um setor de Service Desk que realiza o cadastro das atividades realizadas pelo setor, para que posteriormente as informações armazenadas no sistema auxiliem os integrantes a solucionar incidentes e problemas que possam acontecer futuramente. Os problemas solucionados geram erros conhecidos conforme as boas práticas de ITIL. Estes erros conhecidos podem ser usados como referência na solução de incidentes ou novos problemas que possam surgir. Ainda em conformidade com o ITIL o sistema disponibiliza o cadastro de Incidentes, Problemas e Itens de Configuração, e também faz o cadastro de clientes que são atendidos pelo setor de Service Desk e cadastro dos usuários que fazem uso do sistema. As opções de busca por erros conhecidos, incidentes e problemas cadastrados no sistema, utilizam a técnica de mineração de texto para auxiliar nos resultados exibidos ao usuário, o texto de pesquisa é tratado antes de ser realizada a busca no banco de dados. Para isso, são utilizadas regras como a eliminação de radicais, remoção de palavras sem significado e tratamento de sinônimos da língua portuguesa e sinônimos específicos do ambiente de trabalho, que podem influir sobre a pesquisa, objetivando trazer resultados que atendam de forma eficaz os objetivos do usuário. Para a construção da aplicação foi necessária a utilização das seguintes ferramentas: a) NetBeans para compilação do código Java do desenvolvimento; b) Microsoft SQL Server para armazenamento das informações e criação das procedures e functions que exercem a função de Mineração de texto; c) Software iReports para confecção dos relatórios do sistema. 26 3.2 ESPECIFICAÇÃO Nesta seção serão apresentados os requisitos funcionais, requisitos não funcionais, diagrama de casos de uso e modelo entidade relacionamento, para o desenvolvimento dos casos de uso e diagrama de atividades, foi utilizada a ferramenta Enterprise Architect da empresa Sparx Systems e para o desenvolvimento do modelo entidade relacionamento foi utilizada a ferramenta DBDesigner. 3.2.1 Requisitos Funcionais O Quadro 1 apresenta os requisitos funcionais disponíveis no sistema. Quadro 1 - Requisitos funcionais Requisitos Funcionais RF01: O sistema deverá solicitar do usuário login e senha para acesso Caso de Uso UC01 ao mesmo. RF02: O sistema deverá permitir apenas que usuários com nível de UC02 “Administrador” façam o cadastro de usuários do sistema. RF03: O sistema deverá permitir que o usuário faça o cadastro de UC03 clientes. RF04: O sistema deverá permitir que o usuário registre os incidentes. UC04 RF05: O sistema deverá permitir que o usuário registre os problemas. UC05 RF06: O sistema deverá permitir que o usuário faça o cadastro de UC06 trâmites de atendimento de incidentes. RF07: O sistema deverá permitir que o usuário faça o cadastro de UC07 trâmites de atendimento de problemas. RF08: O sistema deverá permitir que o usuário faça buscas por erros UC08 conhecidos. RF09: O sistema deve gerar um erro conhecido a cada problema UC09 resolvido. RF10: O sistema deverá permitir que o usuário faça o cadastro de itens de configuração. UC10 27 RF11: O sistema deverá permitir que o usuário faça buscas por UC11 incidentes cadastrados. RF12: O sistema deverá permitir que o usuário faça buscas por UC12 problemas cadastrados. RF13: O sistema deverá permitir que o usuário cadastre sinônimos UC13 específicos do negócio que serão utilizados na mineração de texto. RF14: O sistema deverá permitir que o usuário cadastre sinônimos do UC14 português que serão utilizados na mineração de texto. RF15: O sistema deverá permitir que o usuário cadastre palavras sem UC15 significados que serão utilizadas na mineração de texto. RF16: O sistema deverá permitir apenas usuários com nível UC16 “Administrador” gerar relatórios de usuários cadastrados. RF17: O sistema deverá permitir que o usuário gere relatórios de UC17 clientes cadastrados. RF18: O sistema deverá permitir que o usuário gere relatórios de UC18 incidentes cadastrados. RF19: O sistema deverá permitir que o usuário gere relatórios de UC19 problemas cadastrados. 3.2.2 Requisitos Não Funcionais O Quadro 2 lista os requisitos não funcionais previstos para o sistema. Quadro 2 - Requisitos não funcionais Requisitos Não Funcionais RNF01: O sistema deve ser executado em ambiente Microsoft Windows XP/7/8/8.1. RNF02: O sistema será projetado para a plataforma Cliente-Servidor. RNF03: O servidor do banco de dados precisara ter instalado o Microsoft SQL SERVER 2008 ou superior. 28 3.2.3 Diagrama de Casos de Uso Esta subseção apresenta o diagrama de casos de uso do sistema. A descrição dos principais casos de uso é apresentada no Apêndice A. Na Figura 6 estão contidos os principais casos de uso do sistema. Figura 6 - Diagrama dos principais Casos de Uso Na Figura 7 estão contidos os casos de uso referentes a emissão de relatórios do sistema. Figura 7 - Diagrama dos Casos de Uso de emissão de relatórios 29 3.2.4 Modelo Entidade Relacionamento A Figura 8 apresenta o Modelo Entidade Relacionamento (MER) físico do sistema. O dicionário de dados está disponível no Apêndice B. Figura 8 - Modelo Entidade Relacionamento O sistema utiliza o banco de dados Microsoft SQL Server para armazenar as informações. A tabela “Usuario” armazena as informações dos usuários que fazem uso do sistema. Estas informações são utilizadas para referenciar o usuário que registrou algum erro conhecido, incidente, problema ou trâmite, além de permitir o login no sistema, somente usuários com nível “Administrador” podem acessar o cadastro de usuários. A tabela “Cliente” armazena informações dos clientes atendidos pelo setor de Service Desk. Estas informações são utilizadas para referenciar o cliente afetado por um incidente ou cliente proprietário de item de configuração. Qualquer usuário pode criar ou alterar um cadastro de cliente. 30 A tabela “ItemConfiguracao” armazena as informações dos itens que compõe a infraestrutura atendida pelo setor de Service Desk. Estas informações são utilizadas para referenciar o item de configuração que está gerando o incidente ou problema. Qualquer usuário pode criar ou alterar um cadastro de Item de Configuração. A tabela “Incidente” armazena as informações sobre os incidentes cadastrados no sistema. Qualquer usuário pode criar ou alterar um cadastro de incidente. A tabela “Problema” armazena as informações sobre os problemas cadastrados no sistema. Cada problema pode criar um novo erro conhecido ou ser referenciado por um erro conhecido já existente definido como solução para o problema. Qualquer usuário pode criar ou alterar um cadastro de Problema. A tabela “ErroConhecido” armazena a solução para um problema cadastrado no sistema e também pode ser referenciado como solução de incidentes. Qualquer usuário pode criar ou alterar um cadastro de Erro Conhecido. A tabela “TramiteIncidente” armazena informações sobre trâmites de incidentes cadastrados no sistema. Qualquer usuário pode adicionar trâmites em um incidente. A tabela “TramiteProblema” armazena informações sobre trâmites de problemas cadastrados no sistema. Qualquer usuário pode adicionar trâmites em um problema. A tabela “Sinonimos” armazena palavras que são sinônimos na língua portuguesa, estas palavras são utilizadas na técnica de mineração de texto contida no sistema, caso contenham palavras no texto de pesquisa que estejam cadastradas na tabela de sinônimos, então estes sinônimos são adicionados ao texto de pesquisa. A tabela “Sinonimos2” tem a mesma função da tabela “Sinonimos”, porém nesta tabela estão cadastrados sinônimos específicos, como termos técnicos que podem ser descritos de formas diferentes pelos usuários, mas que são considerados ambíguos. Qualquer usuário pode adicionar palavras consideradas sinônimos no sistema. A tabela “PalavraSemSignificado” contém palavras que não devem ser consideradas na execução da mineração de texto, caso o texto de pesquisa contenha uma palavra igual a alguma das palavras registradas na tabela, então esta palavra é eliminada do texto de pesquisa. Qualquer usuário pode adicionar palavras sem significado nesta tabela através do sistema. 3.3 IMPLEMENTAÇÃO A seguir são mostradas as técnicas e ferramentas utilizadas e a operacionalidade da implementação. 31 3.3.1 Técnicas e ferramentas utilizadas O sistema foi desenvolvido utilizando a linguagem de programação Java, como compilador do código foi utilizado o NetBeans IDE versão 7.2. Os dados do sistema serão armazenados no Sistema Gerenciador de Banco de Dados (SGBD) Microsoft SQL Server versão Express, além de armazenar os dados, toda a técnica de mineração de texto que está disponibilizada no sistema foi desenvolvida através da mesma ferramenta, com a utilização de functions, procedures e views é realizado todo o trabalho de mineração de texto. Para a geração de relatórios é utilizada a ferramenta iReports versão 5.1, que é produzida pela Jaspersoft Community. O iReports é uma ferramenta gratuita e open source, para criação de relatórios. 3.1.1.1 Java A linguagem de programação Java foi utilizada em todo o desenvolvimento do sistema. Na Figura 9 é apresentada a classe Java que faz a conexão com o banco de dados. Figura 9 - Classe Java de conexão com o banco de dados 32 3.1.1.2 Microsoft SQL Server O Microsoft SQL Server tem a função de armazenar os dados gerados pelo sistema, e também foi utilizado para o desenvolvimento da função de mineração de texto. Na Figura 10 é exibido um fragmento do código que modifica uma palavra do plural para o singular. O código verifica se os últimos caracteres da palavra verificada possuem um conjunto de caracteres específicos, caso retorne verdadeiro, os últimos caracteres da palavra são modificados e transformam a palavra do estado plural para o estado singular. Figura 10 - Função criada para retornar palavra no singular 3.1.1.3 iReports Para o desenvolvimento dos relatórios emitidos pelo sistema foi utilizada a ferramenta iReports. Na Figura 11 pode se observar um fragmento do código XML que faz a geração do relatório de clientes cadastrados no sistema. 33 Figura 11 - XML do relatório de clientes 3.1.1.4 Mineração de Texto A técnica de mineração de texto presente neste trabalho, tem sua estrutura criada usando como referência os arquivos disponibilizados em Ptstemmer (2014), que disponibiliza códigos fontes que realizam a mineração de texto em várias linguagens de programação. Para a criação da tabela de sinônimos da língua portuguesa foram extraídas informações de uma ferramenta de código aberto (OPENOFFICE, 2014). A Figura 12 apresenta o diagrama de atividades do processo de mineração de texto que é realizado no sistema desenvolvido. A técnica de mineração de texto é aplicada nas telas de incidentes registrados, de problemas registrados e visualizar erros conhecidos. 34 Figura 12 - Diagrama de atividades do processo de mineração de texto do sistema 3.3.2 Operacionalidade da implementação Ao abrir o sistema, o usuário deverá fazer login. O usuário e a senha de acesso deverão estar previamente cadastrados e somente usuários com nível de administrador podem cadastrar usuários do sistema. Esta tela atende ao requisito funcional RF01. A Figura 13 apresenta a tela de login do sistema. 35 Figura 13 - Tela de login do sistema Após a validação de login do usuário, o sistema exibe a tela de menu principal, onde o usuário pode realizar o cadastro de clientes, de usuários, de incidentes, de problemas e itens de configuração. Podem também ter as opções de geração de relatórios de cadastros de cliente, de usuário, de incidentes e de problemas. Na Figura 14 tem-se a tela do menu principal. Figura 14 - Tela do menu principal Na Figura 15 visualiza-se a tela de cadastro de cliente. Este cadastro serve para referenciar o cliente que foi afetado por um incidente ou para referenciar um proprietário de item de configuração. Esta tela cumpre o requisito funcional RF03. 36 Figura 15 - Tela de cadastro de cliente Na Figura 16 é apresentada a tela de cadastro de usuário. Esta tela só pode ser acessada por usuários que tiverem o nível de usuário igual a “Administrador”. Nesta tela é possível cadastrar, consultar ou deletar um usuário. Nesta tela cumpre-se o requisito funcional RF02. 37 Figura 16 - Tela de cadastro de usuário Na Figura 17 apresenta-se um fragmento do código Java desenvolvido para cadastrar o usuário na base de dados. Primeiramente o algoritmo verifica se já existe um cadastro com o código de usuário informado. Caso exista, o sistema realiza a atualização dos dados, caso contrário, um novo usuário é cadastrado no banco de dados. 38 Figura 17 - Fragmento do código fonte do cadastro de usuário A tela de cadastro de incidente cumpre o objetivo específico (A) e reúne além das informações pertinentes ao incidente, as informações sobre o cliente afetado e sobre o item de configuração que está gerando o incidente. Na parte inferior da tela possui uma tabela que lista todos os trâmites do incidente em específico, nesta tela além de cadastrar o incidente pode-se cadastrar os trâmites relacionados ao mesmo. Com isso cumprem-se os requisitos funcionais RF04 e RF06. A Figura 18 apresenta a tela de registro de incidentes. Figura 18 - Tela de registro de incidente 39 A tela de cadastro de problema cumpre o objetivo específico (B) e reúne as informações pertinentes ao problema e sobre o item de configuração que está gerando o problema. Na parte inferior da tela tem-se uma tabela que lista todos os trâmites do problema em específico, nesta tela além de cadastrar o problema pode-se cadastrar os trâmites relacionados ao mesmo. Com isso cumprem-se os requisitos funcionais RF05 e RF07. A Figura 19 apresenta a tela de registro de problema. Figura 19 - Tela de registro de problema Na Figura 20 apresenta-se a tela de cadastro de erro conhecido, que é gerada a partir da solução de um problema cadastrado no sistema. Para isso, o usuário do sistema deve abrir um problema que ainda não esteja resolvido e clicar no botão resolver problema, ou caso o problema já tenha um erro conhecido atrelado ao mesmo, o usuário pode visualizá-lo ao clicar no botão visualizar solução. A tela de cadastro de erro conhecido informa os dados do problema que gerou o erro conhecido, e também as informações específicas do erro conhecido como categoria, código, título e solução do erro conhecido, com isso cumpre-se o requisito funcional RF09. 40 Figura 20 - Tela de cadastro de erro conhecido Na Figura 21 pode se visualizar a tela de erros conhecidos cadastrados. Esta tela cumpre o objetivo específico (C) e que lista os erros conhecidos cadastrados no sistema, respeitando as regras informadas nas opções de filtro. Nesta tela pode ser utilizada a técnica de mineração de texto para obter uma gama maior de resultados que podem ajudar na busca por uma solução esperada. Caso a mineração de texto esteja desativada, é realizada uma simples busca respeitando as configurações do filtro de pesquisa. Com isso cumpre-se o requisito funcional RF08. Figura 21 - Tela de visualização de erros conhecidos cadastrados 41 Na Figura 22 pode se visualizar a tela de incidentes cadastrados. Esta tela cumpre o requisito funcional RF11. Nesta tela podem ser visualizados os incidentes cadastrados no sistema. A opção de mineração de texto está disponível, e pode ser aplicada sobre a busca de incidentes, exibindo ao usuário apenas registros que cumpram as condições informadas nos campos de busca. Figura 22 - Tela de visualização de incidentes registrados A Figura 23 exibe a tela de problemas cadastrados. Esta tela cumpre o requisito funcional RF12. Nesta tela podem ser visualizados os problemas cadastrados no sistema. A opção de mineração de texto está disponível, e pode ser aplicada sobre a busca de problemas, exibindo ao usuário apenas registros que cumpram as condições informadas nos campos de busca. 42 Figura 23 - Tela de visualização de problemas registrados Na Figura 24 pode se visualizar a tela de cadastro de item de configuração. Esta tela cadastra os itens de configuração que podem ser referenciados nos cadastros de incidentes e problemas do sistema. O cadastro de incidentes possui campos de cadastro específicos do item de configuração, e também possui campos de informação sobre o cliente proprietário do item de configuração. Com esta tela cumpre-se o requisito funcional RF10. Figura 24 - Tela de cadastro de item de configuração 43 Na Figura 25 pode se visualizar a tela de cadastro de palavras sem significado. Nesta tela o usuário pode visualizar todas as palavras já cadastradas no sistema, e também pode adicionar ou excluir palavras sem significado, que serão desconsideradas na aplicação da técnica de mineração de texto do sistema. Figura 25 - Tela de cadastro de palavras sem significado Na Figura 26 pode se visualizar a tela de cadastro de sinônimos do negócio. Nesta tela o usuário pode visualizar todas os sinônimos de negócio já cadastrados no sistema, e também pode adicionar ou excluir os mesmos. Estes sinônimos serão utilizados na aplicação da técnica de mineração de texto do sistema, onde palavras consideradas sinônimos são adicionadas ao foco de pesquisa. Figura 26 - Tela de cadastro de sinônimos do negócio 44 Na Figura 27 pode se visualizar a tela de cadastro de sinônimos do português. Nesta tela o usuário pode visualizar todas os sinônimos do português já cadastrados no sistema, e também pode adicionar ou excluir os mesmos. Estes sinônimos serão utilizados na aplicação da técnica de mineração de texto do sistema, onde palavras consideradas sinônimos são adicionadas ao foco de pesquisa. Figura 27 - Tela de cadastro de sinônimos do português Na Figura 28 pode se visualizar o relatório de incidentes disponível no sistema. Neste relatório são listados todos os incidentes cadastrados no sistema, este relatório cumpre o requisito funcional RF18. Figura 28 - Tela de relatório de incidentes cadastrados 45 Na Figura 29 é exibido o relatório de problemas cadastrados. Este relatório mostra todos os problemas cadastrados no sistema. Também é exibido o erro conhecido que soluciona o respectivo problema. No sistema também é possível gerar relatórios de usuários, de clientes e de incidentes conforme Figura 28. Com isto, cumpre-se os requisitos funcionais RF16, RF17, RF18 e RF19 e o objetivo específico (D). Figura 29 - Tela de relatório de problemas cadastrados A Figura 30 exibe um fragmento do código de procedimento realizado no Microsoft SQL Server, que realiza o tratamento de sinônimos utilizado na técnica de mineração de texto. O tratamento verifica as palavras contidas no texto de pesquisa e compara com as palavras cadastradas nas tabelas de sinônimos. Caso contenham palavras iguais em alguma linha da tabela, as palavras desta linha são somadas ao texto de pesquisa, que também executa o tratamento de eliminação de radicais. Figura 30 - Fragmento do código de tratamento de sinônimos 46 A Figura 31 exibe um fragmento da função de tratamento de redução adverbial realizada no Microsoft SQL Server, que realiza a redução adverbial de uma palavra para que esta não cause impacto nos resultados da pesquisa. A Figura 31 realiza a redução adverbial da palavra “EXPERIMENTE”. Figura 31 - Fragmento do código da função de redução adverbial A Figura 32 exibe um fragmento da função de tratamento de redução de superlativo realizada no Microsoft SQL Server, que realiza a redução do superlativo nas palavras do texto de pesquisa, para que estas palavras não impactem sobre os resultados da mesma. Figura 32 - Fragmento do código da função de redução de superlativo A técnica de mineração de texto é aplicada sobre as buscas por registros de erros conhecidos, incidentes e problemas. Caso a mineração de texto esteja ativada. O texto de pesquisa é tratado com redução de superlativo, redução adverbial e eliminação de palavras sem significado. Após este processo é realizada a procura por palavras que contenham sinônimos cadastrados nas duas tabelas de sinônimos disponíveis no sistema. Na Figura 30 pode-se ver um fragmento da procedure desenvolvida na linguagem Structured Query Language (SQL) para verificação das palavras sinônimos, com isto cumpre-se o objetivo 47 específico (E) deste sistema. Nas Figuras 33 e Figura 34 tem-se uma parte do processo de mineração de texto. Figura 33 - Fragmento de visualização de erros conhecidos com aplicação de mineração de texto É possível perceber na Figura 33 que a solução de erro com código 15, que está destacada entre linhas não possui a palavra impressora, portanto, se fosse realizada uma pesquisa simples este erro conhecido não seria exibido. Mas como a pesquisa que deu origem a este resultado foi realizada com a utilização da técnica de mineração de texto, palavras consideradas sinônimos a impressora foram adicionadas ao escopo da busca, isto ocorre porque é executada uma procedure que cria uma view de pesquisa com o código SQL, adicionando ao escopo de busca palavras consideradas sinônimos, o texto de pesquisa utilizado foi “impressora”, o código SQL gerado pela procedure pode ser visto na Figura 34. Figura 34 - Código SQL de busca após execução da procedure Após a execução da view de pesquisa, os resultados retornados seriam os exibidos na Figura 33 desta subseção. 3.4 RESULTADOS E DISCUSSÃO Foi atendida a proposta de criação de um sistema que realiza o cadastro dos atendimentos realizados por uma equipe de Service Desk, seguindo as boas práticas do ITIL. Isto se cumpre realizando o cadastro de incidentes, o de problemas e erros conhecidos. A técnica de mineração de texto auxilia o usuário na busca de uma solução que atenda de fato as 48 suas necessidades. Nos artigos e trabalhos de conclusão de curso consultados para a realização deste, foram encontrados trabalhos semelhantes ao sistema proposto, devido a abordagem realizada das práticas de ITIL ou a utilização da técnica de mineração de texto. Porém, as funcionalidades disponibilizadas neste sistema, diferencia o mesmo quando comparado aos trabalhos consultados. Em relação aos trabalhos correlatos, o trabalho desenvolvido por Fischer (2012), tem como objetivo a criação de uma ferramenta para Help Desk, que possui uma base de dados com erros conhecidos, e que utiliza a técnica de mineração de texto. O sistema desenvolvido abrange mais áreas do ITIL do que a aplicação proposta por Fischer. A técnica de mineração de texto é aplicada sobre os registros de erros conhecidos, incidentes e problemas que estão cadastrados na base de dados. Já a aplicação de Fischer só aplica mineração de texto sobre os erros conhecidos. Com relação ao trabalho de Fink (2011), são utilizadas técnicas iguais ao sistema desenvolvido, porém, os objetivos são diferentes. Enquanto a aplicação de Fink realiza a classificação de incidentes de um Service Desk, utilizando a técnica de mineração de texto. O sistema desenvolvido realiza o cadastro das atividades realizadas por um setor de Service Desk, utilizando a técnica de mineração de texto sobre as opções de busca do sistema. Em relação ao software da Setrion Saas Aplications (2014), o milldesk realiza o cadastro dos atendimentos realizados por um setor de Help Desk, baseado nas boas práticas do ITIL, o que o torna semelhante ao sistema desenvolvido, porém, o software não faz uso da técnica de mineração de texto, o que o torna diferente ao sistema desenvolvido. No Quadro 3 é exibido um comparativo entre o sistema desenvolvido e os trabalhos correlatos. 49 Quadro 3 - Comparativo entre sistema desenvolvido e trabalhos correlatos ITIL Gestão de Gestão de Erros incidentes problemas conhecidos Sistema desenvolvido Ferramenta desenvolvida por Fischer (2012) Aplicação desenvolvida por Fink (2011) Sistema desenvolvido por Setrion Saas Aplications (2014) Mineração de texto Aplicado Aplicado Aplicado sobre sobre sobre erros incidentes problemas conhecidos 50 4 CONCLUSÕES O sistema produto deste trabalho atendeu a todos os objetivos definidos no item 1.1 deste documento. Desenvolveu-se um sistema capaz de auxiliar uma equipe de Service Desk, na resolução dos atendimentos prestados, e que através da técnica de mineração de texto se torna uma ferramenta inteligente para busca de soluções para os atendimentos. O registro de incidentes, de problemas e erros conhecidos consolidam a aderência das boas práticas do ITIL no sistema desenvolvido. As ferramentas utilizadas para o desenvolvimento do sistema foram adequadas. O SGBD Microsoft SQL Server, além de persistir os dados do sistema, também foi utilizado para o desenvolvimento da técnica de mineração de texto, as funcionalidades disponibilizadas no mesmo atenderam de forma eficaz, as necessidades de desenvolvimento do sistema. A ferramenta de criação de relatórios iReports, possui uma gama excelente de recursos para o desenvolvimento de relatórios, além de possuir uma interface intuitiva e repleta de recursos para personalização de relatórios. O maior desafio encontrado durante o desenvolvimento do sistema foi a parte que tange o desenvolvimento da técnica de mineração de texto. A elaboração de diversas funções dentre elas as funções de segmentação das palavras do texto de pesquisa, eliminação de palavras sem significado do foco de pesquisa e adição de palavras sinônimos ao texto de pesquisa, e a junção destas funções para realização do resultado esperado. O desenvolvimento deste trabalho proporcionou ao autor deste, um grande aprendizado na linguagem de programação Java, também pode-se ter a dimensão da importância de seguir as boas práticas do ITIL, no gerenciamento de um setor de Service Desk. 4.1 EXTENSÕES Este sistema pode ser melhorado, ampliado ou incrementado em trabalhos futuros agregando novas funcionalidades ou utilizando outras técnicas e ferramentas para a execução de algumas tarefas como: a) implementar a função de adicionar arquivos anexos ao erro conhecido, na intenção de armazenar mais elementos que possam contribuir na solução de um problema; b) realizar controle de atendimento aos incidentes e problemas fazendo controle de 51 Service Level Agreement (SLA) conforme ITIL; c) realizar o controle de mudanças conforme ITIL; d) implementação de “Palavras chave” nos erros conhecidos; e) adicionar funcionalidade para importar cadastros de clientes já existentes. 52 REFERÊNCIAS ALVARES, Reinaldo V. Investigação do Processo de Stemming na Língua Portuguesa. 2005. Dissertação de Mestrado (Mestrado em Computação) – Departamento de Computação. Universidade Federal Fluminense. Niterói. Rio de Janeiro. Disponível em: <http://www2.ic.uff.br/PosGraduacao/Dissertacoes/258.pdf>. Acesso em: 6 out. 2014. FARINHA, Carla M. P. Adoção de ITIL em Grandes Empresas. Portugal, 2005. 40 f. Artigo (Licenciatura em Engenharia Informática) – Departamento de Engenharia Informática, Universidade de Coimbra. Coimbra. Disponível em: <http://student.dei.uc.pt/~cfarinha/scripts/CSI/GEs.pdf> Acesso em: 7 abr. 2014. FELDMAN, Ronen; SANGER, James. The Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data. New York: Cambridge University Press, 2006. FERREIRA, Paulo A. S. Implementação de Processos da Fase de Operação de Serviço do ITIL em Ambiente Universitário: O caso do ISCTE-IUL. 2011. Dissertação de Mestrado (Mestrado em Gestão de Sistemas de Informação) – Departamento de Ciências e Tecnologias da Informação, Instituto Universitário de Lisboa, Portugal. Disponível em: <https://repositorio.iscteiul.pt/bitstream/10071/2338/1/Implementa%C3%A7%C3%A3o%20de%20Processos%20da% 20Fase%20de%20Opera%C3%A7%C3%A3o%20de%20Servi%C3%A7o%20do%20ITIL%2 0em%20Ambiente%20Universit%C3%A1rio%20%E2%80%93%20O%20Caso%20do%20IS CTE-IUL.pdf/>. Acesso em: 3 out. 2014. FINK, Carla A. Aplicação da Técnica Text Mining para Auxílio na Classificação de Incidentes de Service Desk. 2010. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. FISCHER, Klauber S. Aplicativo para empresa de Help Desk baseado em gestão do conhecimento utilizando a técnica de Mineração de Texto. 2012. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. FREITAS, Marcos A. S. Fundamentos do gerenciamento de serviços de TI: preparatório para certificação ITIL V3 Foundation. 1 ed. Rio de Janeiro: Editora Brasport. 2010. GOMES, Bruno J. N.; PEREIRA, Fabio L. G. Melhoria dos Serviços Através da Aplicação do Modelo de Governança de TI e Ferramentas de Qualidade: Um Estudo de Caso. VII CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO, Niterói, p. 6, 2011. Disponível em: <http://www.excelenciaemgestao.org/Portals/2/documents/cneg7/anais/T11_0334_1810.pdf>. Acesso em: 10 abr. 2014. 53 ITIL.ORG. ITIL Knowledge – Overview. Suiça, [2011?]. Disponível em: <http://www.itil.org/en/vomkennen/itil/index.php>. Acesso em: 8 set. 2014. ITSMF. Fundamentos do Gerenciamento de Serviços em TI baseado no ITIL. 1 ed. Holanda: Editora Van Haren Publishing, 2005. Disponível em: <http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=19&cad=rja&uact =8&ved=0cfmqfjaioao&url=http%3a%2f%2Ffiles.tinorte.webnode.com.br%2F200000069d6b47d7ae3%2FFundamentos%2520de%2520ITIL.pdf&ei=IoiAVLSrNcurNrWphMgO&usg =AFQjCNF76GXipcY0wosw7TFzxhFtJow7AA&bvm=bv.80642063,d.eXY>. Acesso em 4 dez. 2014. LANUNIVERSITY: ITIL: Visão Geral e Benefícios. Campinas. São Paulo. [2014?]. Disponível em: <http://www.lanuniversity.com.br/itil/itil>. Acesso em: 31 mar. 2014. MAGALHÃES, Ivan, L.; PINHEIRO, Walfrido, B. Gerenciamento de Serviços de TI na Prática: Uma abordagem com base na ITIL Inclui ISO/IEC 20.000 e IT Flex. 1 ed. São Paulo: Editora Novatec, 2007. MARTINS, Yasmmin; AZEVEDO, Breno F. T.; BASTOS, Helvia, P. P. Identificação de Palavras Compostas como Auxílio à Mineração de Textos: Desenvolvimento do Compostas_v1. 6º Circuito de Tecnologia da Informação, Rio de Janeiro, 2010. Disponível em: <http://www.essentiaeditora.iff.edu.br/index.php/citi/article/download/1470/680>. Acesso em: 27 set. 2014. MELENDEZ, Rubem. Service desk corporativo: Solução com base na ITIL V3. 1 ed. São Paulo: Editora Novatec, 2011. Disponível em: <http://www.novateceditora.com.br/livros/servicedesk/capitulo9788575222690.pdf>. Acesso em 4 dez. 2014. MELO, Daniel, R. A. A importância da tecnologia na informação nas estratégias das organizações contemporâneas: breve revisão de literatura. V CONVIBRA – Congresso Virtual Brasileiro de Administração, Manaus, p. 2, 2008. Disponível em: <http://www.convibra.org/2008/artigos/412_0.pdf>. Acesso em: 2 set. 2014. MICROSOFT DEVELOPER NETWORK. Conceitos de mineração de dados. Estados Unidos, 2014. Disponível em: <http://msdn.microsoft.com/pt-br/library/ms174949.aspx>. Acesso em: 27 set. 2014. MORAIS, Edilson A. M.; AMBRÓSIO, Ana Paula L. Mineração de Textos. Goiás, 2007. 30 f. Relatório Técnico (Mestrando em Ciências da Computação) – Instituto de Informática, Universidade Federal de Goiás. Goiânia. Disponível em: <http://www.inf.ufg.br/sites/default/files/uploads/relatorios-tecnicos/RT-INF_005-07.pdf>. Acesso em: 7 abr. 2014. 54 NÓBREGA, Rose M. D. R. Implementação de prática de gerenciamento de serviços de TI no superior tribunal de Justiça: Uma análise do impacto em processos do modelo ITIL. 2007. 121 f. Monografia (Pós-Graduando em Administração Estratégica de Sistemas de Informação) – Núcleo Brasília, Fundação Getúlio Vargas. Brasília. Disponível em: <http://bdjur.stj.jus.br/xmlui/bitstream/handle/2011/19256/Implementa%C3%A7%C3%A3o_ Pr%C3%A1tica_Gerenciamento_Rose%20Mary.pdf?sequence=1>. Acesso em: 8 abr. 2014. OPENOFFICE. Dicionário de português. Hungria, 2014. Disponível em: <https://wiki.openoffice.org/wiki/Pt.openoffice.org/FAQ/Geral/0401>. Acesso em: 25 out. 2014. PTSTEMMER. PTStemmer – A Stemming toolkit for the portuguese language. Estados Unidos, 2014. Disponível em: <https://code.google.com/p/ptstemmer/>. Acesso em: 24 out. 2014. SETRION SAAS APLICATIONS. MillDesk: Software para Help Desk e Service Desk. Joinville. Santa Catarina. 2014. Disponível em: <http://www.milldesk.com.br>. Acesso em: 29 maio 2014. SORTICA, Eduardo, A.; CLEMENTI, Sérgio; CARVALHO, Tereza C. M. B. Governança de TI: comparativo COBIT e ITIL. 2004. 13 f. Artigo ([N.I]) – Centro Universitário Fundação Santo André. Santo André. Disponível em: <http://www3.fsa.br/LocalUser/gestaoti/Ativ09%20CLEMENTI%202004%20%20Governan %C3%A7a%20de%20TI%20-%20Comparativo%20entre%20Cobit%20e%20Itil.pdf>. Acesso em: 31 mar. 2014. TRIBUNAL DE JUSTIÇA DO DISTRITO FEDERAL E DOS TERRITÓIOS. Fundamentos em Gerenciamento de Serviços de TI. Brasília. Distrito Federal. 2012. Disponível em: <http://www.tjdft.jus.br/institucional/controle-interno/boas-praticas/itil/at_download/file>. Acesso em: 05 set. 2014. WIVES, Leandro, K. Um Estudo sobre Agrupamento de Documentos Textuais em Processamento de Informações não Estruturadas Usando Técnicas de “Clustering”. 1999. 84 f. Dissertação de Mestrado (Mestrando em Ciência da Computação) – Instituto de Informática, Universidade Federal do Rio Grande do Sul. Porto Alegre. Disponível em: < http://www.lume.ufrgs.br/bitstream/handle/10183/25933/000102235.pdf?sequence=1&locale =pt_BR>. Acesso em: 27 set. 2014. 55 APÊNDICE A – Descrição dos Casos de Uso Nos Quadros a seguir, apresentam-se o detalhamento dos casos de uso conforme previstos no(s) diagrama(s) apresentado(s) na subseção 3.2.3. No Quadro 4 apresenta-se o caso de uso "Login". Quadro 4 - Descrição do caso de uso Efetuar login UC01 – Efetuar login. Ator: Usuário. Objetivo: O sistema deverá permitir o usuário efetuar login no sistema. Pré-condição: O usuário tem que estar cadastrado no banco de dados. Pós-condição: Usuário autenticado pelo sistema. Cenário Principal: 1. O usuário informa seu login e senha; 2. O sistema faz a validação de login e senha; 3. O sistema abre o menu principal. Cenário Alternativo 01: No passo 2 do cenário principal, caso o sistema não encontre login e senha no banco de dados: 1. O sistema emite mensagem de usuário/senha inválidos. No Quadro 5 apresenta-se o caso de uso "Cadastrar usuário do sistema". Quadro 5 - Descrição do caso de uso Cadastrar usuário do sistema UC02 – Cadastrar usuário do sistema. Ator: Administrador. Objetivo: O sistema deverá fazer o cadastrado dos usuários do mesmo. Pré-condição: O usuário deverá ter feito login no sistema com usuário de nível administrador. Pós-condição: Usuário cadastrado ou alterado com sucesso. Cenário Principal: 1. O usuário pretende cadastrar um novo usuário do sistema; 2. O usuário preenche os campos de nome, login, senha e nivel do usuário; 3. O usuário clica em cadastrar; 4. O sistema valida as informações e exibe mensagem de usuário cadastrado. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário pretenda alterar um cadastro de usuário já existente: 56 1. 2. 3. 4. 5. Na tela de cadastro de usuários clicar em pesquisar; O sistema lista os usuários cadastrados, o usuário seleciona um deles e clica em alterar; O usuário pode alterar o nome, login, senha e nível do usuário; O usuário clica em cadastrar; O sistema valida as informações e exibe mensagem de usuário cadastrado. Cenário Alternativo 02: No passo 1 do cenário principal, caso o usuário pretenda excluir um cadastro de usuário: 1. Na tela de cadastro de usuários o mesmo clica em pesquisar; 2. O sistema lista os usuários cadastrados, o usuário seleciona um deles e clica em alterar; 3. Os dados do usuário são listados na tela; 4. O usuário clica em excluir usuário; 5. O sistema pergunta ao usuário se ele confirma a exclusão; 6. O sistema exclui o registro de usuário da base de dados. No Quadro 6 apresenta-se o caso de uso "Cadastrar Clientes". Quadro 6 - Descrição de caso de uso Cadastrar clientes UC03 – Cadastrar clientes. Ator: Usuário. Objetivo: O sistema deverá realizar o cadastro de cliente. Pré-condição: O usuário terá que ter feito login no sistema. Pós-condição: Cadastro ou alteração de cliente efetuada com sucesso. Cenário Principal: 1. O usuário pretende cadastrar um novo cliente no sistema; 2. O usuário preenche o nome, e-mail e telefone do cliente; 3. O usuário clica no botão cadastrar; 4. O sistema avisa que o cliente foi cadastrado com sucesso; 5. O sistema limpa os campos para um novo registro. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário pretenda alterar um cadastro de cliente: 1. O usuário clica em pesquisar; 2. O sistema lista os clientes cadastrados, o usuário seleciona um cliente e clica em alterar; 3. O sistema abre a tela com os dados do cadastro; 4. O usuário pode alterar o nome, e-mail e telefone do cliente; 5. O usuário clica em cadastrar; 6. O sistema informa que o cliente foi cadastrado com sucesso. 57 No Quadro 7 apresenta-se o caso de uso "Registrar Incidentes". Quadro 7 - Descrição do caso de uso Registrar incidentes UC04 – Registrar incidentes. Ator: Usuário. Objetivo: O sistema deverá realizar o registro de incidentes. Pré-condição: Usuário deve ter feito login no sistema. Pós-condição: Incidente registrado ou alterado com sucesso. Cenário Principal: 1. O usuário pretende cadastrar um novo incidente; 2. O usuário informa a situação e prioridade do incidente, informa o cliente relacionado, informa o item de configuração relacionado, cadastra a descrição e solução de contorno do incidente; 3. O usuário clica em cadastrar; 4. O sistema valida as informações e exibe mensagem de incidente registrado. Cenário Alternativo 01: No passo 3 do cenário alternativo 01, caso o usuário queira resolver o incidente: 1. O usuário clica em resolver incidente; 2. O sistema abre a tela de visualizar erros conhecidos; 3. O usuário seleciona o erro conhecido que deseja; 4. O usuário clica em apontar erro conhecido; 5. O sistema emite mensagem de apontamento de erro conhecido realizado com sucesso. Cenário Alternativo 02: No passo 1 do cenário principal, caso o usuário queira visualizar a solução para o incidente: 1. O usuário clica em visualizar solução; 2. O sistema abre a tela com os dados do erro conhecido atrelado ao incidente. No Quadro 8 apresenta-se o caso de uso "Registrar Problemas". Quadro 8 - Descrição do caso de uso Registrar problemas UC05 – Registrar problemas. Ator: Usuário. Objetivo: O sistema deverá realizar o registro de problemas. Pré-condição: Usuário deve ter feito login no sistema. Pós-condição: Problema registrado ou alterado com sucesso. Cenário Principal: 1. O usuário pretende cadastrar um novo problema; 2. O usuário informa a categoria, prioridade e situação do problema, o item de configuração relacionado, descrição e solução de contorno do problema; 3. O usuário clica em cadastrar; 58 4. O sistema faz a validação das informações e exibe mensagem de problema registrado. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário queira resolver o problema: 1. O usuário clica em resolver problema; 2. O sistema abre a tela de cadastro de erro conhecido; 3. O sistema gera automaticamente as informações do problema de origem; 4. O usuário pode informar o título e a descrição de solução do erro conhecido; 5. O usuário clica em cadastrar erro conhecido; 6. O sistema emite mensagem de erro conhecido cadastrado com sucesso. Cenário Alternativo 02: No passo 1 do cenário principal, caso o usuário queira visualizar a solução para o problema: 1. O usuário clica em visualizar solução; 2. O sistema abre a tela com os dados do erro conhecido que soluciona o problema. No Quadro 9 apresenta-se o caso de uso "Adicionar trâmite em incidente". Quadro 9 - Descrição do caso de uso Adicionar trâmite em incidente UC06 – Adicionar trâmite em incidente. Ator: Usuário. Objetivo: O sistema deverá realizar o registro de trâmites em incidentes. Pré-condição: Usuário deve ter cadastrado um incidente no sistema. Pós-condição: Trâmite é adicionado ao incidente. Cenário Principal: 1. O usuário informa a descrição do trâmite; 2. O usuário clica em adicionar trâmite; 3. O sistema grava o trâmite no banco de dados com as informações de código, nome do usuário, descrição e data e hora do trâmite; 4. O sistema adiciona o trâmite a lista de trâmites do incidente relacionado. No Quadro 10 apresenta-se o caso de uso "Adicionar trâmite a problema". Quadro 10 - Descrição do caso de uso Adicionar trâmite em problema UC07 – Adicionar trâmite em problema. Ator: Usuário. Objetivo: O sistema deverá realizar o registro de trâmites em problemas. Pré-condição: Usuário deve ter cadastrado um problema no sistema. Pós-condição: O trâmite é adicionado ao problema. Cenário Principal: 1. O usuário informa a descrição do trâmite; 2. O usuário clica em adicionar trâmite; 3. O sistema grava o trâmite no banco de dados com as informações de código, nome do usuário, descrição e data e hora do trâmite; 59 4. O sistema adiciona o trâmite a lista de trâmites do problema relacionado. No Quadro 11 apresenta-se o caso de uso "Listar erros conhecidos". Quadro 11 - Descrição do caso de uso Listar erros conhecidos UC08 – Listar erros conhecidos. Ator: Usuário. Objetivo: O sistema deve listar os erros conhecidos. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: O sistema lista os erros conhecidos cadastrados ou erro conhecido é alterado. Cenário Principal: 1. O usuário define as configurações de filtro; 2. O usuário clica em pesquisar; 3. O sistema lista somente os erros conhecidos que cumpram as condições do filtro. Cenário Alternativo 01: No passo 1, caso o usuário desejar alterar um erro conhecido cadastrado: 1. O usuário seleciona o cadastro de erro conhecido que deseja alterar; 2. O usuário clica em apontar erro conhecido; 3. O sistema abre a tela com os dados do erro conhecido selecionado; 4. O usuário pode alterar o título, a categoria e a descrição de solução do erro conhecido; 5. O usuário clica em cadastrar erro conhecido; 6. O sistema cadastra erro conhecido na base de dados. No Quadro 12 apresenta-se o caso de uso "Cadastrar erro conhecido". Quadro 12 - Descrição do caso de uso Cadastrar erro conhecido UC09 – Cadastrar erro conhecido. Ator: Usuário. Objetivo: O sistema devera cadastrar erros conhecidos. Pré-condição: O usuário deve resolver um problema já cadastrado. Pós-condição: Erro conhecido, registrado. Cenário Principal: 1. O usuário clica em resolver problema; 2. A tela de cadastro de erros conhecidos é exibida na tela, com as informações de usuário, código e descrição do problema de origem já preenchido; 3. O usuário informa a categoria, título e solução do erro conhecido; 4. O usuário clica em cadastrar erro conhecido; 5. O sistema emite mensagem de erro conhecido cadastrado com sucesso. No Quadro 13 apresenta-se o caso de uso "Cadastrar item de configuração". 60 Quadro 13 - Descrição do caso de uso Cadastrar item de configuração UC10 – Cadastrar item de configuração. Ator: Usuário. Objetivo: O sistema deverá realizar o cadastro de item de configuração. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: Item de configuração cadastrado com sucesso. Cenário Principal: 1. O usuário pretende cadastrar um novo item de configuração; 2. O usuário preenche os campos de etiqueta de patrimônio, número de série, local de instalação, categoria, cliente proprietário e descrição do item de configuração; 3. O usuário clica em cadastrar item de configuração; 4. O sistema valida as informações e exibe a informação de item de configuração cadastrado com sucesso. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário pretenda alterar um cadastro de item de configuração: 1. O usuário clica em pesquisar na tela de cadastro de item de configuração; 2. O usuário seleciona um item de configuração da lista de itens de configuração cadastrados; 3. O usuário clica em alterar; 4. O usuário pode alterar os campos de etiqueta de patrimônio, número de série, local de instalação, categoria, cliente proprietário e descrição do item de configuração; 5. O usuário clica em cadastrar; 6. O sistema mostrar mensagem de item de configuração cadastrado com sucesso. No Quadro 14 apresenta-se o caso de uso "Listar incidentes". Quadro 14 - Descrição do caso de uso Listar incidentes UC11 – Listar incidentes. Ator: Usuário. Objetivo: O sistema deve listar os incidentes cadastrados. Pré-condição: O usuário deve ter feito login no sistema; Pós-condição: O sistema lista os incidentes cadastrados. Cenário Principal: 1. O usuário pretende procurar um incidente; 2. O usuário define as configurações de filtro; 3. O usuário clica em pesquisar; 4. O sistema lista somente os incidentes que cumpram as condições do filtro. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário queira alterar um incidente cadastrado: 1. O usuário seleciona o incidente que deseja alterar; 2. O usuário clica em alterar incidente; 61 3. 4. 5. 6. O sistema abre a tela com os dados do cadastro; O usuário pode alterar a situação, prioridade e adicionar trâmites no incidente conforme Quadro 11 desta seção; O usuário clica no botão cadastrar; O sistema emite mensagem de incidente registrado. No Quadro 15 apresenta-se o caso de uso "Listar problemas". Quadro 15 - Descrição do caso de uso Listar problemas UC12 – Listar problemas. Ator: Usuário. Objetivo: O sistema deve listar os problemas cadastrados. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: O sistema lista os problemas cadastrados. Cenário Principal: 1. O usuário pretende procurar um problema; 2. O usuário define as configurações de filtro; 3. O usuário clica em pesquisar; 4. O sistema lista somente os problemas que cumpram as condições do filtro. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário queira alterar um problema já cadastrado: 1. O usuário seleciona o problema que deseja alterar; 2. O usuário clica em alterar problema; 3. O sistema abre uma tela com os dados do cadastro; 4. O usuário pode alterar a categoria, situação, prioridade e adicionar trâmites ao problema conforme Quadro 12 desta seção; 5. O usuário clica em cadastrar; 6. Sistema valida as informações e exibe mensagem de problema registrado. No Quadro 16 apresenta-se o caso de uso "Cadastrar sinônimos do negócio". Quadro 16 - Descrição do caso de uso Cadastrar sinônimos do negócio UC13 – Cadastrar sinônimos do negócio. Ator: Usuário. Objetivo: Cadastrar sinônimos na tabela de sinônimos do negócio. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: O sistema cadastra o sinônimo na tabela. Cenário Principal: 1. O usuário pretende cadastrar um sinônimo de negócio; 2. O usuário informa as duas palavras que são sinônimos uma da outra; 3. O usuário clica em adicionar; 4. O sistema grava o sinônimo no banco de dados. 62 Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário queira excluir um sinônimo do negócio: 1. O usuário seleciona o sinônimo que deseja excluir; 2. O usuário clica em excluir; 3. O sistema pede a confirmação da exclusão do sinônimo de negócio; 4. O sistema exclui o sinônimo do negócio do banco de dados. No Quadro 17 apresenta-se o caso de uso "Cadastrar sinônimos do português". Quadro 17 - Descrição do caso de uso Cadastrar sinônimos do português UC14 – Cadastrar sinônimos do português. Ator: Usuário. Objetivo: Cadastrar sinônimos na tabela de sinônimos do português. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: O sistema cadastra o sinônimo na tabela. Cenário Principal: 1. O usuário pretende cadastrar um sinônimo do português; 2. O usuário informa as duas palavras que são sinônimos uma da outra; 3. O usuário clica em adicionar; 4. O sistema grava o sinônimo no banco de dados. Cenário Alternativo 01: No passo 1 do cenário principal, caso o usuário queira excluir um sinônimo do português: 1. O usuário seleciona o sinônimo que deseja excluir; 2. O usuário clica em excluir; 3. O sistema pede a confirmação da exclusão do sinônimo do português; 4. O sistema exclui o sinônimo do português do banco de dados. No Quadro 18 apresenta-se o caso de uso "Cadastrar palavras sem significado". Quadro 18 - Descrição do caso de uso Cadastrar palavras sem significado UC15 – Cadastrar palavras sem significado. Ator: Usuário. Objetivo: Cadastrar palavras sem significado no sistema. Pré-condição: O usuário deve ter feito login no sistema. Pós-condição: O sistema cadastra ou exclui a palavra na tabela de palavras sem significado. Cenário Principal: 1. O usuário pretende cadastrar uma palavra sem significado; 2. O usuário informa a palavra que não tem significado; 3. O usuário clica em cadastrar; 4. O sistema grava a palavra sem significado no banco de dados. Cenário Alternativo 01: 63 No passo 1 do cenário principal, caso o usuário queira excluir uma palavra sem significado: 5. O usuário seleciona a palavra sem significado que deseja excluir; 6. O usuário clica em excluir; 7. O sistema pede a confirmação de exclusão da palavra sem significado; 8. O sistema exclui a palavra sem significado do banco de dados. No Quadro 19 apresenta-se o caso de uso "Gerar relatório de usuários". Quadro 19 - Descrição do caso de uso Gerar relatório de usuários UC16 – Gerar relatório de usuários Ator: Administrador Objetivo: O sistema deverá emitir relatório dos usuários cadastrados. Pré-condição: O usuário deverá ter feito login no sistema com nível de administrador. Pós-condição: Sistema gera o relatório de usuários. Cenário Principal: 1. O usuário clica em relatório de usuários cadastrados; 2. O sistema gera um relatório com todos os usuários cadastrados. No Quadro 20 apresenta-se o caso de uso "Gerar relatório de clientes". Quadro 20 - Descrição do caso de uso Gerar relatório de clientes UC17 – Gerar relatório de clientes. Ator: Usuário. Objetivo: O sistema deverá emitir relatório dos clientes cadastrados. Pré-condição: O usuário deverá ter feito login no sistema. Pós-condição: Sistema gera o relatório de clientes. Cenário Principal: 1. O usuário clica em relatório de clientes cadastrados; 2. O sistema gera um relatório com todos os clientes cadastrados. No Quadro 21 apresenta-se o caso de uso "Gerar relatório de Incidentes". Quadro 21 - Descrição do caso de uso Gerar relatório de incidentes UC18 – Gerar relatório de incidentes. Ator: Usuário. Objetivo: O sistema deverá emitir relatório de incidentes cadastrados. Pré-condição: O usuário deverá ter feito login no sistema. Pós-condição: Sistema gera o relatório de incidentes. Cenário Principal: 1. O usuário clica em relatório de incidentes; 2. O sistema gera um relatório com todos os incidentes cadastrados. 64 No Quadro 22 apresenta-se o caso de uso "Gerar relatório de Problemas". Quadro 22 - Descrição do caso de uso Gerar relatório de problemas UC19 – Gerar relatório de Problemas. Ator: Usuário. Objetivo: O sistema deverá emitir relatório de problemas cadastrados. Pré-condição: O usuário deverá ter feito login no sistema. Pós-condição: Sistema gera o relatório de problemas. Cenário Principal: 1. O usuário clica em relatório de problemas; 2. O sistema gera um relatório com todos os problemas cadastrados. 65 APÊNDICE B – Descrição do Dicionário de Dados Este Apêndice apresenta a descrição das tabelas do banco de dados apresentadas na seção de especificação deste trabalho. Os tipos de dados utilizados nos atributos são: a) INT: armazena numéricos inteiros; b) VARCHAR: armazena caracteres alfanuméricos; c) DATETIME: armazena dados do tipo data e hora. No Quadro 23 tem-se o dicionário de dados da tabela “cliente”. Quadro 23 - Dicionário da tabela cliente Atributo Tipo Descrição CODCLIENTE INT Chave primária NOMECLIENTE VARCHAR(50) Nome do cliente EMAIL VARCHAR(50) E-mail do cliente TELEFONE VARCHAR(50) Telefone do cliente No Quadro 24 tem-se o dicionário de dados da tabela “usuario”. Quadro 24 - Dicionário de dados da tabela usuario Atributo Tipo Descrição CODUSUARIO INT Chave primária NOMEUSUARIO VARCHAR(50) Nome do usuário LOGIN VARCHAR(20) Login do usuário SENHA VARCHAR(20) Senha do usuário NIVEL VARCHAR(20) Nível do usuário No Quadro 25 tem-se o dicionário de dados da tabela “incidente”. Quadro 25 - Dicionário de dados da tabela incidente Atributo Tipo Descrição CODINCIDENTE INT Chave primária 66 CODERROCONHECIDO INT Chave estrangeira CODCLIENTE INT Chave estrangeira CODITEMCONFIGURACAO INT Chave estrangeira CODUSUARIO INT Chave estrangeira SITUACAO VARCHAR(20) Situação do incidente PRIORIDADE VARCHAR(20) Prioridade do incidente DESCRICAOINCIDENTE VARCHAR(500) Descrição do incidente SOLUCAOCONTORNO VARCHAR(500) Solução de contorno do incidente DATAINCIDENTE DATETIME Data e hora de registro do incidente No Quadro 26 tem-se o dicionário de dados da tabela “problema”. Quadro 26 - Dicionário de dados da tabela problema Atributo Tipo Descrição CODPROBLEMA INT Chave primária CODITEMCONFIGURACAO INT Chave estrangeira CODUSUARIO INT Chave estrangeira CODERROCONHECIDO INT Chave estrangeira CATEGORIA VARCHAR(20) Categoria do problema PRIORIDADE VARCHAR(20) Prioridade do problema SITUACAO VARCHAR(20) Situação do problema DESCRICAOPROBLEMA VARCHAR(500) Descrição do problema SOLUCAOCONTORNO VARCHAR(500) Solução de contorno do problema DATAPROBLEMA DATETIME Data e hora de registro do problema No Quadro 27 tem-se o dicionário de dados da tabela “tramiteincidente”. Quadro 27 - Dicionário de dados da tabela tramiteIncidente Atributo Tipo Descrição CODTRAMITEINCIDENTE INT Chave primária CODUSUARIO INT Chave estrangeira CODINCIDENTE INT Chave estrangeira COMENTARIO VARCHAR(200) Comentário do trâmite DATATRAMITE DATETIME Data e hora de registro do trâmite 67 No Quadro 28 tem-se o dicionário de dados da tabela “tramiteproblema”. Quadro 28 - Dicionário de dados da tabela tramiteProblema Atributo Tipo Descrição CODTRAMITEPROBLEMA INT Chave primária CODUSUARIO INT Chave estrangeira CODPROBLEMA INT Chave estrangeira COMENTARIO VARCHAR(200) Comentário do trâmite DATATRAMITE DATETIME Data e hora de registro do trâmite No Quadro 29 tem-se o dicionário de dados da tabela “itemConfiguracao”. Quadro 29 - Dicionário de dados da tabela itemConfiguracao Atributo Tipo Descrição CODITEMCONFIGURACAO INT Chave primária CODCLIENTE INT Chave estrangeira ETIQUETAPATRIMONIO VARCHAR(20) Código de etiqueta de patrimônio NSERIE VARCHAR(20) Número de série LOCALINSTALACAO VARCHAR(50) Local de instalação CATEGORIA VARCHAR(20) Categoria do item de configuração DESCRICAO VARCHAR(500) Descrição do item de configuração No Quadro 30 tem-se o dicionário de dados da tabela “erroConhecido”. Quadro 30 - Dicionário de dados da tabela erroConhecido Atributo Tipo Descrição CODERROCONHECIDO INT Chave primária CODPROBLEMA INT Chave estrangeira CODUSUARIO INT Chave estrangeira TITULO VARCHAR(400) Título do erro conhecido SOLUCAO VARCHAR(500) Solução do erro conhecido No Quadro 31 tem-se o dicionário de dados da tabela “sinonimos1”. 68 Quadro 31 - Dicionário de dados da tabela sinonimos1 Atributo Tipo Descrição PALAVRA1 VARCHAR(60) Primeira palavra de sinônimo PALAVRA2 VARCHAR(60) Segunda palavra do sinônimo No Quadro 32 tem-se o dicionário de dados da tabela “sinonimos2”. Quadro 32 - Dicionário de dados da tabela sinonimos2 Atributo Tipo Descrição PALAVRA1 VARCHAR(60) Primeira palavra de sinônimo PALAVRA2 VARCHAR(60) Segunda palavra do sinônimo No Quadro 33 tem-se o dicionário de dados da tabela “palavraSemSignificado”. Quadro 33 - Dicionário de dados da tabela palavraSemSignificado Atributo Tipo Descrição PALAVRA VARCHAR(25) Palavra sem significado