1 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS CARLOS EDUARDO CASSIANO CARDOSO DE SÁ TIAGO MARTINS FERREIRA MACRI SISTEMA WEB DE GERENCIAMENTO DE CHAMADOS PARA EMPRESAS DE MANUTENÇÃO NA ÁREA DE INFORMÁTICA LINS/SP 1º SEMESTRE/2014
2 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS CARLOS EDUARDO CASSIANO CARDOSO DE SÁ TIAGO MARTINS FERREIRA MACRI SISTEMA WEB DE GERENCIAMENTO DE CHAMADOS PARA EMPRESAS DE MANUTENÇÃO NA ÁREA DE INFORMÁTICA Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para a obtenção do Título de Tecnólogo em Banco de Dados Orientador: Prof. Me. Adriano Bezerra LINS/SP 1º SEMESTRE/2014
3 CARLOS EDUARDO CASSIANO CARDOSO DE SÁ TIAGO MARTINS FERREIRA MACRI SISTEMA WEB DE GERENCIAMENTO DE CHAMADOS PARA EMPRESAS DE MANUTENÇÃO NA ÁREA DE INFORMÁTICA Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para obtenção do titulo de Tecnólogo em Banco de Dados sob orientação do Prof. Me. Adriano Bezerra. Data de Aprovação / / Orientador Prof. Me. Adriano Bezerra Examinador 1(nome) Examinador 2(nome)
4 Aos meu pais, Carlos Benedito, Luci Cassiana, meus irmãos Isac e Stéphanie Cassiana. Ao meu amigo Tiago e minha namorada Ana Paula de Brito pelo apoio e incentivo para que pudesse alcançar meus objetivos. Carlos Eduardo Cassiano Cardoso de Sá
5 AGRADECIMENTOS Ao final de mais uma etapa concluída em minha vida, gostaria de agradecer, principalmente, a Deus e aos meus pais, Carlos Benedito Cardoso de Sá e Luci Cassiana Silva Cardoso de Sá, por estarem juntos comigo em mais este momento de minha vida e por nunca medirem esforços para me ajudar em todos os desafios que obtive ao longo desses anos. Aos meus irmãos Isac Cassiano Cardoso de Sá e Stéphanie Cassiana Cardoso de Sá e meus demais familiares, que sempre me apoiaram e encorajaram a estudar. Meu sincero agradecimento ao orientador Me. Adriano Bezerra, pelos ensinamentos e atenção, que foram de extrema importância para a conclusão do trabalho. A todos os meus amigos, especialmente a minha namorada Ana Paula de Brito e Tiago Macri, que estiveram a maior parte do tempo me incentivando e que me ajudaram muito. Carlos Eduardo Cassiano Cardoso de Sá
6 Dedico aos meus pais, José Carlos e Maria Lúcia, aos meus demais familiares e colegas. Ao meu parceiro nesse trabalho, Carlos, e a todos professores que me acrescentaram conhecimento e me ajudaram a concluir essa jornada. Tiago Martins Ferreira Macri
7 AGRADECIMENTOS Ao concluir essa etapa em minha vida, após grande esforço, agradeço especialmente aos meus pais, José Carlos Macri e Maria Lúcia Martins Ferreira Macri, pelo apoio e ânimo dados nos momentos em que pensei em desistir, sendo de extrema importância. Agradeço ao orientador Me. Adriano Bezerra, pelo conhecimento passado e pela atenção dada. A todos meus familiares e colegas, pelo incentivo, e a meu parceiro nessa empreitada, Carlos Eduardo Cardoso de Sá, pela força de vontade para continuar até o fim. A todos professores e funcionários da Fatec Lins que me ajudaram de alguma maneira a cumprir esse objetivo em minha vida. Tiago Martins Ferreira Macri
8 RESUMO O presente trabalho visa a automatizar o gerenciamento de chamados técnicos de uma empresa de manutenção na área de informática. Para isso, foi desenvolvido um sistema web que realiza essa função, o qual apresenta portabilidade para os usuários por ser usado via browser. O sistema foi desenvolvido com a utilização da linguagem de programação Java, juntamente com as tecnologias Servlets e JSP; além disso, foi utilizado CSS para estilização das páginas e JavaScript para inserção de alguns efeitos. O driver JDBC foi usado para realizar a conexão da aplicação com o banco de dados Oracle 10g. Palavras-chave: sistema web, chamados, ordem de serviço, Java.
9 ABSTRACT This study shows how to automate the technician calls for a company who works in the field of computer maintenance. For this, has been developed a web system who does it, and it offers for their users mobility, because it can be used by browser. This system has been developed with the programming language Java, with Servlets and JSP technologies, furthermore, has been used CSS for the pages stylization and JavaScript for put some effects. The driver JDBC was used for connect the application with an Oracle 10g database. Keywords: web system, tickets, order service, Java.
10 LISTAS DE ILUSTRAÇÕES Figura 1.1 Exemplo de tabelas Figura 1.2 Diagrama de um ambiente de sistema de BD Figura 1.3 Arquitetura servlet Figura 1.4 Ciclo de execução do JSP Figura Estrutura hierárquica dos comandos Figura 2.1 Software OneOrZero...34 Figura 2.2 Abertura de chamados Qualitor Figura 2.3 Tela principal do sistema web Ocomon Figura 2.4 Tela dos solicitantes Figura 2 5 Tela inicial do NeXT Help Desk Figura 3.1 Diagrama de Classe...42 Figura Modelo de Entidade Relacionamento Relacional Figura 3.3 Modelo de Entidade Relacionamento Lógico Figura 3.4 Diagrama de Caso de Uso Figura Diagrama de Atividades Fazer login Figura 3.6 Diagrama MVC Fazer login Figura 3.7 Diagrama de Sequencia Fazer login Figura 3.8 Diagrama de Atividades Manter técnico Figura 3.9 Diagrama MVC Manter técnico Figura 3.10 Diagrama de Sequencia Manter técnico Figura 3.11 Diagrama de Atividades Manter cliente Figura 3.12 Diagrama MVC Manter cliente Figura 3.13 Diagrama de Sequencia - Manter cliente Figura 3.14 Diagrama de Atividades Manter empresa Figura 3.15 Diagrama MVC Manter empresa Figura 3.16 Diagrama de Sequencia Manter empresa Figura 3.17 Diagrama de Atividades Gerar relatórios Figura 3.18 Diagrama MVC Gerar relatórios Figura 3.19 Diagrama de Sequencia Gerar relatórios Figura 3.20 Diagrama de Atividades Manter base de soluções Figura 3.21 Diagrama MVC Manter base de soluções
11 Figura 3.22 Diagrama de Sequencia Manter base de soluções Figura 3.23 Diagrama de Atividades Criar chamados Figura 3.24 Diagrama MVC Criar chamados Figura 3.25 Diagrama de Sequencia Criar chamados Figura 3.26 Diagrama de Atividades Gerenciar chamados Figura 3.27 Diagrama MVC Gerenciar chamados Figura Diagrama de Sequencia Gerenciar chamados Figura 3.29 Diagrama de Atividades Adicionar alteração Figura 3.30 Diagrama MVC Adicionar alteração Figura 3.31 Diagrama de Sequencia Adicionar alteração Figura 3.32 Diagrama de Atividades Alterar dados pessoais Figura 3.33 Diagrama MVC Alterar dados pessoais Figura 3.34 Diagrama de Sequencia Alterar dados pessoais Figura 3.35 Diagrama de Atividades Efetuar cadastro Figura 3.36 Diagrama MVC Efetuar cadastro Figura 3.37 Diagrama de Sequencia Efetuar cadastro Figura 3.38 Diagrama de Atividades Aprovar cadastro Figura 3.39 Diagrama MVC Aprovar cadastro Figura 3.40 Diagrama de Sequencia Aprovar cadastro Figura 3.41 Diagrama de Atividades Solucionar chamado Figura 3.42 Diagrama MVC Solucionar chamado Figura 3.43 Diagrama de Sequencia Solucionar chamado Figura 4.1 Tela de login...72 Figura 4.2 Tela de criar usuário Figura 4.3 Tela recuperar senha Figura 4.4 Tela criar chamado Figura 4.5 Tela meus chamados Figura 4.6 Detalhes do chamado Figura 4.7 Tela editar dados Figura 4.8 Tela criar chamado Figura 4.9 Tela solucionar chamado Figura 4.10 Tela meus chamados Figura 4.11 Tela detalhes do chamado Figura 4.12 Gerenciar alterações... 80
12 Figura 4.13 Tela criar solução Figura 4.14 Tela base de soluções Figura 4.15 Tela aprovar cliente Figura 4.16 Tela detalhes do cliente Figura 4.17 Tela adicionar cliente Figura 4.18 Gerenciar cliente Figura 4.19 Cliente selecionado para gerenciamento Figura 4.20 Adicionar técnico Figura 4.21 Gerenciar técnico Figura 4.22 Técnico selecionado para gerenciamento Figura 4.23 Adicionar empresa Figura 4.24 Gerenciar empresa Figura 4.25 Gerenciar empresa selecionada Figura 4.26 Gerar relatório Figura 4.27 Relatório gerado... 89
13 LISTAS DE ABREVIATURAS E SIGLAS TI - Tecnologia da Informação SI - Sistema de Informação BD - Banco de Dados HTML - Hypertext Markup Language CSS Cascading Style Sheets OS - Ordem de Serviço MVC - Modelo Visão Controle MER - Modelo Entidade-Relacionamento SGBD - Sistema Gerenciadores de Banco de Dados API - Aplication Programing Interface JDBC - Java Database Connectivy TB - TeraBytes WWW - World Wide Web JSE - Java Platform Standard Edition JME - Java Platform Micro Edition PDA - Pagers e Personal digital assistants JEE - Java Platform Enterprise Edition SQL - Structured Query Language ODBC - Open Database Connectivity JSP - JavaServer Pages SGML - Standard Generalized Markup Language XML - extensible Markup Language PHP - Personal Home Page UML - Unified Modeling Language SMTP - Simple Mail Transfer Protocol POP3 - Post Office Protocol SSL - Security Sockets Layer CEP - Código de Endereçamento Postal RG - Registro Geral CPF - Cadastro de Pessoas Físicas PDF Portable Document Format
14 SUMÁRIO INTRODUÇÃO FUNDAMENTAÇÃO TEÓRICA BANCO DE DADOS BD relacional Sistema Gerenciador de Banco de Dados TECNOLOGIA JAVA Java Database Connectivy (JDBC) Servlet JSP HTML Hipertexto e hiperlinks CSS JavaScript JQuery FERRAMENTAS DE DESENVOLVIMENTO NetBeans Integrated Development Environment (IDE) Oracle 10g Astah Community Oracle SQL Developer Data Modeler ANÁLISE DE MERCADO SISTEMA SERVICE DESK SISTEMA ONEORZERO AIMS SISTEMA QUALITOR SISTEMA OCOMON SISTEMA MILLDESK SISTEMA MKNOD... 37
15 2.7 SISTEMA NEXT HELP DESK CONSIDERAÇÕES FINAIS DO CAPÍTULO ANÁLISE E PROJETO DE SISTEMA ANÁLISE DE NEGÓCIO Instrução do problema Atores e envolvidos no processo Descrição do ambiente atual VISÃO GERAL DO PRODUTO Perspectiva do Produto (Análise de Mercado) Características ANÁLISE DE REQUISITOS Diagrama de Classe Diagrama de Caso de Uso Especificação de Histórias Fazer login Manter técnico Manter cliente Manter empresa Gerar relatórios Manter base de soluções Criar chamados Gerenciar chamados Adicionar Alteração Alterar dados pessoais Efetuar cadastro Aprovar cadastro de cliente Solucionar Chamado... 69
16 4 PROTÓTIPO INTERFACE DO SISTEMA WEB - CLIENTE Tela de login Tela de criar usuário Tela recuperar senha Tela criar chamado Tela meus chamados Tela editar dados INTERFACE DO SISTEMA WEB - TÉCNICO Tela criar chamado Tela solucionar chamado Tela meus chamados Tela criar solução Tela base de soluções Tela aprovar cliente INTERFACE DO SISTEMA WEB - ADMINISTRADOR Adicionar cliente Gerenciar cliente Adicionar técnico Gerenciar técnico Adicionar empresa Gerenciar empresa Gerar relatório CONCLUSÃO REFERÊNCIAS BIBLIOGRÁFICAS... 91
17 17 INTRODUÇÃO Durante um longo tempo, a Tecnologia da Informação (TI) foi considerada um mero adereço para as organizações, uma ferramenta de alto custo e que, a princípio, não gerava qualquer retorno como nos dias de hoje. Mas, com o tempo, a TI foi crescendo dentro das organizações e hoje é indispensável na sobrevivência de uma empresa. Segundo um estudo geral feito pela empresa Keystone (2005), ficou comprovado que a TI é fundamental para o crescimento de uma empresa, pois tem a habilidade de gerenciar aumentos na complexidade e organização de seus processos e modelos de negócios. Antes, a TI era usada apenas para eliminar o trabalho humano, ou seja, automatizar tarefas; atualmente, é utilizada no enriquecimento de todo o processo organizacional, otimizando as atividades, o que gera mais rapidez na comunicação e sucesso nas tomadas de decisões. Mendes (2006) complementa essa informação dizendo que a TI traz a melhoria da qualidade de serviços, mas que seu maior mérito é colocar uma ponte onde antes existia um vazio, entre ela e negócios, o que abre um canal de comunicação com esses dois mundos. Hoje se vive na era da informação e as empresas têm que inovar para sobreviverem, tornando obrigatório esse investimento em TI, assim como os profissionais têm de inovar em suas habilidades; se um profissional tiver apenas um conhecimento básico na área e não procurar se desenvolver, atualizar, certamente perderá espaço dentro de uma corporação. De acordo com Laudon e Laudon (2004), um Sistema de Informação (SI) pode ser definido como um conjunto de componentes inter-relacionados, que são responsáveis pela coleta, processamento, armazenamento e distribuição de informações, que auxiliam na tomada de decisão e controle de uma organização. Segundo Padoveze (2004), um sistema de informação é definido como um conjunto de recursos humanos, materiais, tecnológicos e financeiros agregados para o processamento de dados e a tradução em informações, para, assim, permitir o cumprimento de seus objetivos. As grandes corporações começam a dar ênfase nos SI, pois são ferramentas que transformam dados armazenados em Bancos de Dados (BD),
18 18 em informações para uma melhor tomada de decisões, tornando-se, assim, um elemento indispensável para as empresas. Com base nisso, será desenvolvido um sistema destinado a empresas que prestam serviços na área da Informática, a fim de gerenciar e controlar as ordens de serviços, para contribuir na agilidade, segurança, confiabilidade e otimização dos serviços prestados. O objetivo do sistema é automatizar essas operações que anteriormente eram feitas de forma manual, por meio de papéis, planilhas, arquivos de texto. Dessa forma, deve-se substituir esses procedimentos para aperfeiçoar a administração e organizar os processos da empresa, por meio de um sistema Web com uma interface amigável e de fácil usabilidade, já que existe uma grande concorrência nessa área. O trabalho está organizado em quatro capítulos. O primeiro capítulo representa os principais conceitos teóricos nos quais este trabalho está fundamentado, com a descrição de cada tecnologia usada, como: JAVA, Oracle 10g, CSS, HTML, etc e as ferramentas, como o NetBeans.. O segundo capítulo representa a análise de mercado e, assim, descreve alguns dos diversos sistemas de Ordem de Serviço (OS), que desempenham funções parecidas com o sistema que será desenvolvido. O terceiro capítulo representa o desenvolvimento do sistema e suas características, a documentação da modelagem de dados, os diagramas de casos de uso, sequência, atividade, modelos de classes, padrão Modelo Visão Controle (MVC) e, também, os diagramas Modelo Entidade-Relacionamento (MER); o capítulo explica de forma detalhada cada diagrama feito. O quarto e último capítulo representa os resultados finais, o sistema concluído, com um tutorial que explica o seu funcionamento; apresenta, também, a conclusão chegada: se as especificações foram cumpridas ou não e os objetivos alcançados.
19 19 1 FUNDAMENTAÇÃO TEÓRICA Neste capítulo será feita uma breve apresentação teórica sobre Banco de Dados (BDs), suas características e os Sistemas Gerenciadores de Banco de Dados (SGBDs). Além disso, discorre sobre a linguagem de programação Java e suas Aplicattion Programming Interface (APIs) como o servlet e JavaServer Pages (JSP) que são destinados principalmente para web e o Java Database Connectivy (JDBC) que é utilizado para realizar conexões com BDs. Também será abordado sobre a linguagem de marcação HTML (HyperText Markup Language) e as demais linguagens que auxiliam na criação de uma página web, como o CSS e JavaScript. Por fim, descreveremos sobre as ferramentas que serão utilizadas para a implementação do sistema web. 1.1 BANCO DE DADOS Segundo Elmasri e Navathe (2011), Banco de Dados (BD) é uma coleção de dados relacionados, constituídos por algo possível de ser registrado e organizado, por exemplo, os nomes, números de telefone e outros dados de uma pessoa, que podem ser armazenados em uma agenda, em um disco rígido ou em qualquer outro lugar adequado para este fim. Para Date (2003), um BD pode ser considerado um repositório ou recipiente, como um armário de arquivamento, só que para arquivos de dados computadorizados. Segundo Elmasri e Navathe (2011), um BD pode ter qualquer tamanho e complexidade. Um exemplo de grande BD é a Amazon.com que contém mais de 20 milhões de dados de livros, jogos, eletrônicos, roupas e outros itens. O seu BD ocupa mais de 2 TeraBytes (TB) e está armazenado em 200 computadores diferentes. Cerca de 15 milhões de visitantes por dia acessam o site e usam o BD para fazerem compras. Ele é atualizado frequentemente à medida que novos produtos são acrescentados ao estoque. Essa imensa quantidade de informações precisa ser organizada e gerenciada de modo que os usuários possam consultar, recuperar e atualizar os dados quando for necessário.
20 BD relacional Segundo Elmasri e Navathe (2011), um BD relacional ou modelo relacional representa uma coleção de relações, sendo que cada uma delas é semelhante a uma tabela de valores ou, até certo ponto, um arquivo plano de registros. Para Date (2003), os sistemas relacionais são baseados em um alicerce formal chamado de modelo relacional de dados que é descrito como tendo os seguintes aspectos: aspecto estrutural, onde os dados no BD são percebidos pelo usuário como tabelas; aspecto de integridade, onde as tabelas satisfazem a certas restrições de integridade; aspecto manipulador, onde os operadores disponíveis para o usuário manipular essas tabelas, por exemplo, para busca de dados. Segundo Dias (2002), os BDs relacionais são bastante utilizados, sendo compostos pelos seguintes conceitos: Tabela Um BD relacional é constituído de tabelas de dados formadas por colunas, cada uma correspondendo a um fragmento diferente de dados e linhas que representam registros individuais. Colunas São chamadas também de campos ou atributos. Cada coluna em uma tabela tem um nome único, dados diferentes e tipos de dados associados. Linhas - Também chamadas de registros ou tuplas. Cada linha representa um registro diferente na tabela. Valores Cada linha consiste em um conjunto de valores individuais que correspondem a colunas. Cada valor deve ter o tipo de dados especificado pela sua coluna. Chaves Uma tabela deve conter uma chave primária, que pode ser uma ou mais colunas para a sua identificação, a qual deve ser única, e pode conter chaves estrangeiras, que correspondem à chave primária de outra tabela, e cria um relacionamento entre essas duas tabelas. Relacionamentos São os vínculos das linhas de uma tabela com as linhas de outra tabela, feitos pelas chaves estrangeiras.
21 21 Na Figura 1.1 são apresentadas duas tabelas compostas pelos itens acima e o relacionamento entre elas, por meio da chave estrangeira. Figura 1.1 Exemplo de tabelas Fonte: Elaborado pelos autores, Sistema Gerenciador de Banco de Dados De acordo com Elmasri e Navathe (2011), um SGBD é um software que permite aos usuários a criação e manutenção de um BD. Ele facilita os processos de BD entre diversos usuários como: Definição É a especificação dos tipos, estruturas e restrições dos dados a serem armazenados e também a definição ou a informação descritiva do BD na forma de um catálogo ou dicionário que são chamados de metadados. Construção É o processo de armazenar os dados em algum meio controlado pelo SGBD. Manipulação São funções como consulta ao BD para recuperar dados específicos, atualização do BD e geração de relatórios. Compartilhamento É o acesso ao BD por diversos usuários e programas simultaneamente. Um programa de aplicação acessa o banco de dados ao enviar consultas ou solicitações de dados ao SGBD. Uma consulta normalmente resulta na recuperação de alguns dados; uma transação
22 22 de SGBD. pode fazer que alguns dados sejam lidos e outros, gravados no banco de dados. (ELMASRI ; NAVATHE, 2011, p.04) Na Figura 1.2 é apresentado como funciona a união do BD com o software Figura 1.2 Diagrama de um ambiente de sistema de BD. 1.2 TECNOLOGIA JAVA Java é uma linguagem de programação desenvolvida pela Sun Microsystems na década de 90, que foi projetada para ser pequena, simples e portável a todas as plataformas e Sistemas Operacionais (SO). Atualmente a tecnologia Java tem grande popularidade e importância, tanto na programação desktop, quanto na Web. Segundo Arnold, Gosling e Holmes (2007) essa tecnologia é bem recebida pela comunidade de desenvolvedores de software pelo fato de ser segura e da programação ser feita apenas uma vez, ou seja, não é necessário portar as aplicações para cada plataforma de software e hardware. Assim, ela permite fazer aplicações portáteis com tão poucas dependências de implementação quanto possível.
23 23 Conforme foi dito por Deitel e Deitel (2010), a linguagem Java teve uma evolução muito rápida. Antes era usada simplesmente para tornar as páginas da World Wide Web (WWW) mais dinâmicas, hoje transformou-se em uma das linguagens mais utilizadas para o atendimento das necessidades de programação. Segundo Deitel e Deitel (2010), a tecnologia Java é dividida em três ambientes: Java Platform Standard Edition (JSE), que é um ambiente para desenvolver aplicativos de desktop; Java Platform Micro Edition (JME), que é um ambiente para desenvolver aplicativos de pequenos dispositivos com limitações de memória e processamento, como celulares, Pagers e Personal digital assistants (PDAs); Java Platform Enterprise Edition (JEE) que é um ambiente para desenvolver aplicativos distribuídos em redes de larga escala e aplicativos baseados na web. Segundo Horstmann (2004), a linguagem Java é relativamente simples, mas contém um amplo conjunto de pacotes de bibliotecas que são necessários para escrever programas. Há pacotes para imagens gráficas, projetos de interface com usuário, criptografia, rede, som, armazenamento de BD e para vários outros propósitos. Até mesmo programadores especializados em Java podem não conhecer o conteúdo de todos os pacotes, pois utilizam apenas os mais importantes e aqueles necessários para um projeto específico Java Database Connectivy (JDBC) No Java, diferentemente de outras linguagens, não é possível fazer uma conexão direta com um Sistema Gerenciador de Banco de Dados Relacional (SGBDR), por isso ele faz uso de uma API para cumprir esse objetivo, que é o JDBC. De acordo com Gonçalves (2007), JDBC consiste em um conjunto de classes e interfaces escritas em Java que oferecem uma completa API para programação com BD. Sendo completamente escrito em Java, ele também tem a vantagem de ser independente de plataforma, ou seja, não será necessário escrever um programa para cada tipo de BD, uma mesma aplicação utilizando JDBC poderá trabalhar com diversos BDs.
24 24 Segundo Bárbara (2008), a função do JDBC é enviar instruções Structured Query Language (SQL) para qualquer BD relacional. Para ele, existem certas semelhanças entre o JDBC e Open Database Connectivity (ODBC), pois ambos funcionam como meio de comunicação Banco x Aplicação, porém, ODBC é uma aplicação restrita ao Windows, enquanto JDBC é multiplataforma. Conforme diz Kurniawan (2002), é necessário um driver funcionando como ponte para a comunicação do aplicativo com o SGBD. O driver JDBC do BD ao qual alguém deseje se conectar é fornecido pelo fabricante de BD ou por outros meios. Segundo Souza (2007), os drivers JDBC foram divididos em quatro tipos que são: Tipo 1 Ponte JDBC/ODBC O primeiro tipo criado e atualmente pouco utilizado pelo fato de usar ODBC, que sacrifica a portabilidade. É escrito em linguagem nativa e composto por classes do pacote sun.jdbc.odbc e uma biblioteca de código nativo. Tipo 2 Driver API-Nativo Esse tipo eliminou a dependência de ODBC, mas ainda é escrito em linguagem nativa, basicamente traduz as chamadas JDBC para as chamadas da API cliente do BD usado. Para seu uso é necessária a instalação de bibliotecas extras na máquina utilizada. Tipo 3 Protocolo de Rede Esse tipo é escrito em Java e, assim, elimina a necessidade de bibliotecas de código nativo. Ele faz a conversão de chamadas JDBC a um protocolo de rede genérico que, então, pode ser traduzido a chamadas à API do SGBD. Tipo 4 Driver Nativo - Totalmente implementado em Java, converte as chamadas JDBC diretamente no protocolo do banco de dados, dispensando uma API cliente intermediaria. É o tipo de driver mais recomendado.
25 Servlet Segundo Horstmann (2004), os servlets Java são mecanismos alternativos para construir aplicativos da Web. Servlets e JavaServer Pages (JSP) estão relacionados, ambos são utilizados para gerar conteúdo dinâmico e para interação com o cliente. Segundo Horstmann (2004), servlet é um programa Java que executa cálculos, alguns deles geram código HTML. Ao implementar um servlet, o programador utiliza uma classe que estende a classe HttpServlet, a qual contém os seguintes métodos: GET Método que obtém informações de um servidor e as envia de volta ao navegador. POST Método que obtém informações que o usuário fornece e as envia a um servidor. Ambos os métodos contêm os seguintes parâmetros: Request, que contém detalhes sobre a solicitação e Response, que permite especificar o que será retornado ao navegador. Segundo Kurniawan (2002), um servlet é uma classe Java que pode ser automaticamente carregada e executada por um servidor web especial, o qual é chamado de contêiner servlet. Os servlets interagem com clientes por meio de um modelo solicitação-resposta baseado em HyperText Transfer Protocol (HTTP). Pelo fato da tecnologia servlet trabalhar sobre HTTP, um contêiner servlet precisa suportá-lo como protocolo para solicitações de cliente e respostas de servidor. Na Figura 1.3. é apresentado a arquitetura de um aplicativo servlet. Figura 1.3 Arquitetura servlet Fonte: Kurniawan, 2002, p.06
26 26 Segundo Deitel e Deitel (2010), o ciclo de vida de um servlet se inicia quando o contêiner o carrega na memória, normalmente, em resposta à primeira solicitação ao servlet. Então os seguintes métodos que formam o ciclo de vida do servlet, são executados: init() O contêiner chama este método uma vez durante o ciclo para inicializar o servlet. service() O contêiner de servlets chama este método para responder a uma solicitação do cliente para o servlet. destroy() É um método de limpeza que é chamado quando um servlet é finalizado. Todos os recursos utilizados pelo servlet, como abrir arquivos ou conexões ao BD, são desalocados no momento da execução deste método JSP Horstmann (2004) explica que, ao usuário solicitar uma página Hypertext Markup Language (HTML) de um servidor na Web, este localiza o arquivo e retorna seu conteúdo. O conteúdo exibido é o mesmo cada vez que a página é solicitada, ou seja, é estático. Entretanto, existem sites da Web que oferecem conteúdos mais dinâmicos, cujas informações são alteradas frequentemente; este é o objetivo da tecnologia JSP: implementar páginas dinâmicas. Segundo Gonçalves (2007), uma das vantagens de se desenvolver em JSP é que a primeira vez em que uma página JSP é carregada, o código é compilado gerando um servlet, e nas próximas execuções a página é enviada diretamente ao servlet, sem que haja uma recompilação. Segundo Horstmann (2004), para se utilizar a tecnologia JSP é necessário ter um servidor integrado a um contêiner de JSP, que lê a página JSP solicitada e a transforma em uma página HTML. Existem diversos servidores disponíveis para esse uso, como o Apache Tomcat e o Glassfish. Na Figura 1.4 é apresentado o ciclo que acontece ao se utilizar JSP, desde a execução de seu arquivo, sua tradução para HTML, passando pelo servidor, até chegar ao navegador do usuário.
27 27 Figura 1.4 Ciclo de execução do JSP Segundo Deitel e Deitel (2010), os elementos de script, como os scriptlets, possibilitam aos programadores a inserção de códigos Java que interajam com componentes em um JSP, a fim de realizar o processamento de solicitação. Segundo Gonçalves (2007), pelo fato de uma página JSP ser convertida em servlet, ela passa a ter o mesmo ciclo de vida que o servlet. Em JSP não existem métodos equivalentes ao doget e dopost de um servlet para o atendimento às requisições, porém, existem os métodos jspinit() e jspdestroy() que possibilitam a implementação de códigos de inicialização e finalização da página. A codificação de uma página JSP, como Horstmann (2004) explica, se parece com a de uma página HTML convencional. Entretanto, dentro do código, há instruções em Java, que são executadas sempre que a página da Web é enviada para um navegador. 1.3 HTML Segundo o site (KIOSKEA, 2013a), o princípio da web é a utilização de hiperligações para navegar entre documentos, chamados de páginas web, por meio de um software chamado navegador ou browser. Uma página web é definida como um ficheiro texto escrito numa linguagem de descrição, que é o HTML e, assim, permite a descrição da formatação do documento e a inclusão de elementos gráficos ou ligações para outros documentos. Segundo Silva (2008), HTML é uma linguagem de marcação para hipertexto destinada a escrever documentos que possam ser lidos por softwares chamados de agentes de usuário, por exemplo, um navegador, um leitor de tela. Para ele, o HTML foi criado com base na especificação Standard Generalized Markup Language (SGML) que contém normas gerais para criação de linguagens de marcação.
28 28 De acordo com Eis (2011), o HTML é uma linguagem para criação de websites baseada em marcação. Essas marcações são chamadas de tags e servem para mostrar as informações que serão exibidas na página e também para mostrar ao navegador o que é cada informação, por exemplo, o que é um título, um parágrafo, um botão, um formulário, etc. Segundo Lamim (2008), a estrutura básica para escrever documentos em HTML, que contém comandos básicos, que se não estiverem corretos o browser poderá interpretar o documento de forma errada. Na Figura 1.5 é apresentado a estrutura hierárquica dos comandos HTML. Figura Estrutura hierárquica dos comandos Hipertexto e hiperlinks Segundo Silva (2008), na década de 1980, uma aplicação para computadores Macintosh denominada Hypercard foi desenvolvida. Ela consistia em uma série de cartões de arquivos contendo textos e gráficos, em sua interface existiam botões, que quando clicados permitiam passar de um cartão para outro; dessa maneira, o usuário podia navegar pelas informações de cada cartão. Essa aplicação foi o ponto de partida para hipertexto e hiperlinks, que utilizam o mesmo conceito. Basicamente, hipertexto é um texto marcado com a linguagem HTML, com hiperlinks que redirecionam para outras páginas HTML.
29 29 De acordo com o site (KIOSKEA, 2013b), as relações hipertexto são elementos de uma página que, quando clicados, permitem ao usuário navegar para um novo endereço. Essas relações permitem navegar para: outro lugar do documento; um ficheiro HTML situado em um lugar diferente da máquina que aloja a página; outra máquina CSS Segundo Macedo (2006), o CSS é um padrão de formatação para documentos HTML/XHTML, que permite uma maior versatilidade no desenvolvimento do design dos sites sem aumentar o seu tamanho. Segundo Silva (2008), as CSS têm por finalidade devolver o propósito inicial da linguagem HTML que foi criada para ser exclusivamente de marcação e estruturação de conteúdos. Isto significa que não cabe à HTML fornecer informações ao agente do usuário sobre a apresentação dos elementos. Por exemplo, cores de fontes, tamanhos de textos, posicionamentos e todo o aspecto visual de um documento não deve ser função da HTML e sim das CSS. Anteriormente, como explica Macedo (2006), com uma boa combinação de tags HTML podia-se criar sites com designs interessantes. Porém, as possibilidades oferecidas eram bastante limitadas, se comparadas às oferecidas pelo CSS. Para Macedo (2006), as principais vantagens de se utilizar CSS são: os diferentes e sofisticados estilos podem ser aplicados ao mesmo documento, permitindo ao autor redirecionar seu conteúdo para novos formatos; a criação e a manutenção do design com maior facilidade, pois é muito mais simples modificar apenas a página de estilo do que cada documento HTML; prevalece a consistência do site, pois a uniformidade de seu aspecto visual é importante, e o CSS garante que todos os documentos tenham o mesmo desenho e arranjo. Segundo Macedo (2006), as folhas de estilos nada mais são do que um conjunto de regras que definem como os estilos serão aplicados a um determinado elemento ou a um conjunto de elementos. Essas regras, segundo Silva (2008), são compostas pelos seguintes componentes: Seletor - É o alvo da regra CSS, ou seja, a tag do elemento da marcação, que define com precisão em qual lugar da marcação será aplicada a regra CSS.
30 30 Declaração - Determina os parâmetros de estilização, que são: propriedade, que define qual será a característica do elemento a ser estilizado, e valor, que é a quantificação ou qualificação da propriedade JavaScript Nos primeiros dias da web, a HTML era bastante simples e de fácil aprendizado; à medida que a web cresceu, como explica Negrino e Smith (2000), a linguagem HTML foi forçada a se tornar mais complexa. Com isso, o JavaScript foi criado com o objetivo de deixar as páginas web mais dinâmicas. Segundo Negrino e Smith (2000), o JavaScript é uma linguagem de programação ou uma linguagem de criação de scripts, usada para aumentar a interatividade das páginas da internet. Um script em JavaScript é um programa incluído em uma página de HTML, colocado dentro de tags que não aparecem para o usuário mas que o navegador da web sabe executá-las De acordo com Negrino e Smith (2000), com o JavaScript é permitida a realização das seguintes ações: criar uma interface do usuário ativa, fornecendo feedback aos usuários à medida que navegam pelas páginas; certificar de que os usuários introduzam informações válidas em formulários; criar páginas de HTML personalizadas durante a execução, dependendo das ações do usuário; controlar o navegador, ou seja, permite abrir novas janelas, exibir caixas de alerta, inserir mensagens personalizadas na barra de status da sua janela. De acordo com o site (KIOSKEA, 2013c), são os eventos que dão origem à interatividade, os quais correspondem às ações do usuário, como o clique do mouse. Graças ao JavaScript, é possível combinar funções e métodos a eventos tais como a passagem do mouse sobre uma área, a mudança de um valor, entre outros JQuery De acordo com o site JQuery (2014), JQuery é uma biblioteca JavaScript simplificada e mais fácil de ser utilizada e rica em conteúdo que o próprio JavaScript. Ele faz manipulações de eventos, animações e uso de Ajax de
31 31 forma mais simples. JQuery funciona na maioria dos browsers, combinando versatilidade e simplicidade. 1.4 FERRAMENTAS DE DESENVOLVIMENTO Neste subcapítulo são apresentados os softwares que foram utilizados no desenvolvimento do sistema web como o Netbeans IDE que foi usado na implementação das páginas servlet e JSP. Também sobre o Oracle 10g que é o SGBD selecionado NetBeans Integrated Development Environment (IDE) O NetBeans IDE é uma ferramenta que oferece suporte abrangente para as tecnologias e aprimoramentos Java mais recentes. Conforme NetBeans (2013) diz, o seu editor Java está em constante aprimoramento, possui muitas funcionalidades e uma extensa linha de ferramentas, modelos e exemplos. O IDE é muita mais que um editor de texto, ele recua linhas, associa palavra, colchetes, realça códigos-fonte, fornece modelos de códigos, dicas de codificação e ferramentas de fatoração. Segundo NetBeans (2013), o editor suporta várias linguagens, incluindo Java, C/C++, extensible Markup Language (XML), HTML, Personal Home Page (PHP), Groovy, Javadoc, JS e JSP Oracle 10g Segundo Oliveira (2005), o Oracle 10g é um SGBD gratuito, utilizado para gerir bases de dados de aplicações gratuitas. Ele é uma extensão do SQL padrão, ou seja, é possível utilizar comandos SQL, como INSERT, DELETE, UPDATE, e o SELECT para manipular os dados, além de comandos para controlar a lógica do processo. De acordo com Oliveira (2005), esta nova versão do Oracle possui recursos introduzidos na release 2 do Oracle 9i, como herança de objetos, além de uma melhora significativa no desempenho dos subprogramas executados no Oracle 10g. Nesta nova versão do Oracle, possui alguns avanços como:
32 32 Novos tipos de dados do IEEE; Expressões regulares; Operações de grupo em tabelas aninhadas; Inserção de caracteres especiais definidos pelo usuário; Modificações na sintaxe do comando FORALL Astah Community Astah Community é uma ferramenta para Unified Modeling Language (UML), que é uma linguagem de modelagem, ou seja, permite visualizar os produtos de um trabalho em diagramas padronizados, foi desenvolvida para ser intuitiva e leve, fácil até para um iniciante mas robusto ao ponto de ser usado até em sistemas complexos. A versão grátis que iremos usar pode desenvolver diagramas de classe, caso de uso, sequência, atividade, comunicação, componente, desenvolvimento, estrutura composta. Tem opção de adicionar plug-ins e permite a impressão dos diagramas ou exportação para uma imagem JPG, PNG Oracle SQL Developer Data Modeler 4.0 Oracle SQL Developer Data Modeler é uma ferramenta gratuita de modelagem de dados usada para incrementar a produtividade do desenvolvedor fornecendo meios de desenvolver modelos lógicos multidimensionais, relacionais e dados físicos. A ferramenta possui opção de fazer engenharia do modelo lógico para o modelo relacional e o reverso.
33 33 2 ANÁLISE DE MERCADO Neste capítulo é mostrado os principais softwares de Ordens de Serviço (OS) ou help desk, que é um serviço de apoio a usuários para suporte e resolução de problemas técnicos. Um sistema dessa área tem a capacidade de gerenciar chamadas, cadastrar clientes, gerar relatórios, entre outras funções. Este capítulo representa alguns dos sistemas com essa funcionalidade e suas características como o Service Desk, Qualitor, Ocomon, entre outros. 2.1 SISTEMA SERVICE DESK É um sistema web utilizado para registrar, atender e gerenciar qualquer tipo de solicitação. Controla quem pede, como pede, quando e a quem pede. Da mesma forma, controla quem atende, o que, como e quando atende. Todo processo desde o pedido até o encerramento fica documentado, com registro dos fatos ocorridos em cada etapa do processo, além do controle de acordo de níveis de serviço. Esse sistema aplica-se a qualquer tipo de empresa que necessite registrar sua comunicação entre seus departamentos, filiais, parceiros e/ou clientes. Seus principais benefícios são: facilidade de adaptação às necessidades dos clientes, é totalmente web, permite que a abertura/acompanhamento de cada chamado seja visualizado pelo cliente ou solicitante, possui tipos de chamados para cada grupo de cliente. 2.2 SISTEMA ONEORZERO AIMS OneOrZero AIMS é um software web help desk para empresas que constitui uma base de conhecimento onde são registradas as soluções de problemas e um sistema de ocorrências altamente configurável e flexível, permitindo ao usuário configurá-lo da forma que desejar. Ele é integrado com diversas tecnologias, como , web e XML e possibilita ao usuário a customização de sua aparência. Os pré-requisitos para a sua instalação são: servidor web Apache ou Internet Information Services (IIS), banco de dados MySQL versão 5.0 ou
34 34 superior, PHP 5.2 ou superior, servidor de Simple Mail Transfer Protocol (SMTP) para de saída (opcional), servidor Post Office Protocol (POP3) para de entrada (opcional), Security Sockets Layer (SSL) para segurança do site (opcional). Na Figura 2.1 é apresentado a tela principal do software OneOrZero AIMS. Figura 2.1 Software OneOrZero Fonte: OneOrZero, SISTEMA QUALITOR O Qualitor é um software de gerenciamento de atendimento, com a possibilidade de ser utilizado como service desk ou help desk. Ele possui diversas opções de licenciamento que permitem atender de negócios e processos de pequeno e médio portes até grandes empresas com necessidades corporativas complexas. Os principais benefícios do Qualitor são: controle de processo de atendimento, controle da equipe de atendentes, melhoria da comunicação com
35 35 os usuários, medição de satisfação dos usuários, metodologia para melhoria contínua, entre outros. O Qualitor é 100% baseado em web com uso da tecnologia Ajax para melhoria da interface, não requer instalação de software na máquina do usuário, é disponível em variadas linguagens e seu modelo de licenciamento é por usuário nomeado ou concorrente. Ele possui diversas funcionalidades, tais como: avisos por , alertas de tendências, configurações de situações por cores, pesquisas de satisfação, confirmação de encerramento, facilidade para armazenamento e busca, controle de atendimento como projetos, análise de causas, faturamento e despesas, gerador de formulários, atendimento online, entre outros. Na Figura 2.2 é apresentado a tela de abertura de chamados do Qualitor. Figura 2.2 Abertura de chamados Qualitor. Fonte: Qualitor, SISTEMA OCOMON O Ocomon é um sistema web sem fins lucrativos, que foi criado inicialmente tendo como funções principais o cadastro, acompanhamento, controle e consulta de ocorrências de suporte. Com o passar dos anos, houve o aperfeiçoamento do sistema, com a implementação de diversas características,
36 36 buscando atender a questões de ordem prática, operacional e gerencial de áreas de suporte técnico como help desk e service desk. Atualmente é possível responder questões como: volume de chamados por período, tempo médio de resposta e solução para os chamados, percentual de chamados atendidos e resolvidos dentro do SLA, tempo de chamados decomposto em cada status de atendimento, usuários mais ativos, principais problemas, reincidência de chamados por equipamento, estado real do parque de equipamentos, como e onde estão distribuídos os equipamentos, além de uma série de outras questões pertinentes à gerência pró-ativa do setor de suporte. O Ocomon foi concebido com a utilização de tecnologias e ferramentas livres para seu desenvolvimento e manutenção. Algumas das principais técnicas utilizadas na sua criação são as seguintes: linguagem PHP, HTML, CSS, JavaScript; banco de dados MySql. Na Figura 2.3 é apresentado a tela principal onde estão localizados os chamados pendentes. Figura 2.3 Tela principal do sistema web Ocomon Fonte: Ocomon, SISTEMA MILLDESK Milldesk é um sistema totalmente web com acesso seguro e sem barreiras para clientes e colaboradores, com organização e controle que garantem
37 37 qualidade de serviços do início ao fim. Suas principais vantagens são: usabilidade que garante agilidade, interface altamente amigável, total aderência ao ITIL, suporte técnico à disposição para dar todo apoio aos clientes. Ele foi desenvolvido para aumentar a performance de uma empresa help desk ou service desk e facilitar o trabalho de seus gestores; permite o gerenciamento de incidentes, problemas, contratos, mudanças, configurações e gestão de ativos. Na Figura 2.4 é apresentado a tela dos solicitantes, onde ficam armazenados os chamados abertos pelos usuários. Figura 2.4 Tela dos solicitantes Fonte: Milldesk, SISTEMA MKNOD O Mknod é um sistema web para help desk que controla chamados técnicos e cria um canal para seus clientes poderem facilmente cadastrar seus problemas ou solicitações, permitindo que a área responsável seja avisada o mais rápido possível. Este sistema possui as seguintes funções: geração de ocorrência, cadastro de colaborador, triagem automática por colaborador e tipos de ocorrência, organização automática de ocorrências por grupos, aplicativo flexível para qualquer departamento de uma empresa, histórico completo da ocorrência, gráficos e relatórios personalizados.
38 SISTEMA NEXT HELP DESK O NeXT Help Desk é um sistema web para controle de chamados técnicos, que gerencia chamados por prioridade e os direciona ao consultor responsável pelo módulo informado no chamado. Os chamados podem ser compartilhados, podendo o mesmo chamado ser visualizado por outro usuário com o mesmo tipo de problema. Com o NeXT Help Desk é possível realizar a criação e visualização de chamados técnicos, a realização de perguntas e a solicitação de suporte remoto. Na Figura 2.5 é apresentada a tela inicial do NeXT Help Desk. Figura 2 5 Tela inicial do NeXT Help Desk. Fonte: NeXT Help Desk, CONSIDERAÇÕES FINAIS DO CAPÍTULO Neste capítulo foram abordados os principais sistemas de gerenciamento de ordem de serviço presentes no mercado, para uma possível comparaçãocom o sistema desenvolvido. No próximo capítulo será apresentada a modelagem de dados do sistema.
39 39 3 ANÁLISE E PROJETO DE SISTEMA Neste capítulo serão apresentados os diagramas que representam o sistema, de acordo com a UML. 3.1 ANÁLISE DE NEGÓCIO Instrução do problema Funcionários das empresas de manutenção na área da Informática que não são informatizadas sofrem ao realizar a organização de suas tarefas, por exemplo, ao preencher os papéis ou formulários de um novo chamado de forma manual, a pessoa responsável por essa tarefa pode cometer erros, além de ser mais trabalhoso e custoso utilizar papéis, que necessitam de espaço físico para serem guardados. Também, outro problema é o fato do cliente só poder acompanhar o andamento de seu chamado ao se comunicar com a empresa via telefone ou . Tal problema afeta diretamente o cliente e o funcionário da empresa, pois ambos são prejudicados com possíveis erros no preenchimento de formulários que não tem nenhum tipo de validação de dados. Também, o cliente têm informações limitadas sobre o andamento de seu problema, ou seja, só fica sabendo se seu problema está sendo resolvido ou foi finalizado ao entrar em contato com a empresa. O fato de o funcionário digitar novamente ou preencher um novo formulário com os dados cadastrais de um cliente e do chamado, toda vez que um novo for iniciado, pode gerar erros de digitação e imprecisão das informações, que pode levar a erros na solução do problema, prejudicando a empresa. Com a implantação do sistema, tais problemas podem ser sanados, uma vez que um cadastro do cliente seria realizado e persistido no BD ao realizar um chamado, não sendo necessário um novo cadastro nos seguintes chamados feitos pelo mesmo cliente. O cliente pode obter informações atuais sobre o status de seu chamado pelo sistema, pois o técnico a cada ação realizada para sanar o problema, iria informar no sistema os procedimentos usados.
40 40 Outro benefício do sistema é a portabilidade, tanto o cliente quanto o funcionário poderá acessar o sistema de qualquer lugar pela Internet, pois teriam suas contas, com login e senha e com determinadas permissões de ações dentro do sistema Atores e envolvidos no processo O sistema possui três atores: cliente, técnico, administrador, cada um com suas responsabilidades. O cliente é responsável pelo seu cadastro no sistema, que é finalizado somente após a aprovação do técnico; além disso, o cliente também é responsável pela abertura de novos chamados. Ao técnico cabe realizar o atendimento ao cliente, a criação e finalização de chamados, a atualização do status do chamado, solução do problema, geração de relatórios, e caso necessário a exclusão de clientes. O administrador atua como um gerenciador do sistema e faz funções que não são permitidas a um técnico como: o cadastro ou exclusão de funcionários, o cadastro ou exclusão de vínculos para prestação de serviços à uma empresa Descrição do ambiente atual Uma pequena empresa de manutenção de computadores e redes para empresas, não informatizada, mantém a mesma forma de trabalho há muito tempo. Anotações em agendas, preenchimento de formulários, planilhas e arquivos de texto e comunicação constante via telefone são alguns dos meios utilizados pelos funcionários para cumprir suas funções. Os chamados são feitos em arquivos textos e salvos em um computador, os dados cadastrais dos clientes são salvos junto, e a cada chamado desse mesmo cliente, novos arquivos são criados, o que ocupa espaço de disco. Esses meios demandam tempo, seja para criar um chamado, verificar um chamado antigo, ou gerar relatórios. Essa empresa presta serviços para outras empresas; ao realizar um contrato entre as empresas, um pagamento mensal é cobrado. Também presta serviços para clientes avulsos, e o pagamento é cobrado por chamado.
41 41 Para criação de um chamado o cliente liga para empresa e informa seu problema, um funcionário vai até o endereço solicitado a fim de o problema. Caso o problema não seja solucionado no local, o problema é levado para a empresa, e ao solucionar, o cliente é informado por meio de uma ligação telefônica VISÃO GERAL DO PRODUTO Perspectiva do Produto (Análise de Mercado) O produto em questão destina-se apenas a solucionar a questão em foco de maneira eficaz, informatizando tarefas que gastam muito tempo, trabalho e que podem conter erros, quando feitas de forma manual Características Figura 3.1 Necessidades e prioridades.
42 ANÁLISE DE REQUISITOS Diagrama de Classe Figura 3.2 Diagrama de Classe.
43 Figura Modelo de Entidade Relacionamento Relacional. 43
44 Figura 3.4 Modelo de Entidade Relacionamento Lógico. 44
45 Diagrama de Caso de Uso Figura 3.5 Diagrama de Caso de Uso.
46 Especificação de Histórias Fazer login Todos os usuários do sistema necessitarão de um login e uma senha para acessá-lo; a conta poderá ser de três tipos de privilégio: cliente, técnico ou administrador, que determinarão as funções que terão no sistema. Para um cliente obter uma nova conta será necessária a sua inscrição no sistema e a espera pela aprovação de um técnico. Figura Diagrama de Atividades Fazer login.
47 47 Figura 3.7 Diagrama MVC Fazer login. Fonte: Elaborado pelos autores, 2014 Figura 3.8 Diagrama de Sequência Fazer login Manter técnico O administrador deverá logar no sistema com seu login e senha, posteriormente abrirá o menu de administrador, onde poderá selecionar a opção para efetuar o cadastro ou atualização dos dados dos técnicos que atuarão na
48 48 área da solução de problemas e chamados. Para seu cadastro são recolhidas informações pessoais, tais como: nome, logradouro, bairro, cidade, CEP, RG, CPF, telefone, celular, , data de nascimento, sexo, login, senha, função e data de admissão. Figura 3.9 Diagrama de Atividades Manter técnico.
49 49 Figura 3.10 Diagrama MVC Manter técnico. Figura 3.11 Diagrama de Sequência Manter técnico
50 Manter cliente O administrador deverá logar no sistema com seu login e senha, após realizar essa operação, abrirá a página inicial com um menu, onde haverá a opção de cadastro de cliente, opção esta que somente será usada caso o cliente não tenha meios de fazer seu próprio cadastro. Para o cadastro, serão recolhidas informações pessoais do cliente como o nome, logradouro, bairro, cidade, CEP, RG, CPF, telefone, celular, , data de nascimento, sexo, login e senha. No menu também existirá a opção de atualizar os dados de um cliente. Figura 3.12 Diagrama de Atividades Manter cliente.
51 51 Figura 3.13 Diagrama MVC Manter cliente. Figura 3.14 Diagrama de Sequência - Manter cliente.
52 Manter empresa O administrador deverá logar no sistema com seu login e senha; feito isso, o menu de administrador, com a opção de criar ou atualizar dados dos vínculos com outras empresas, abrirá na tela, o administrador deverá selecionar essa opção e realizará o cadastro de vínculos com empresas que desejarão receber manutenção periódica e solução de problemas em seus equipamentos de redes, internet e computadores, quando necessário; para isso, serão coletados os dados da empresa como o nome, CNPJ, área de atuação, data do vínculo, logradouro, bairro, cidade, CEP, telefone e . Figura 3.15 Diagrama de Atividades Manter empresa.
53 53 Figura 3.16 Diagrama MVC Manter empresa. Figura 3.17 Diagrama de Sequência Manter empresa.
54 Gerar relatórios O administrador deverá logar no sistema com seu login e senha; após realizar essa operação, o menu abrirá e eles selecionarão a opção de relatórios personalizados, assim poderão gerar relatórios para controle e administração dos chamados, os quais poderão ser dos tipos: relatório de chamados por cliente, relatório de chamados de uma empresa contratante, relatório de chamados por técnico. Figura 3.18 Diagrama de Atividades Gerar relatórios
55 55 Figura 3.19 Diagrama MVC Gerar relatórios. Figura 3.20 Diagrama de Sequência Gerar relatórios Manter base de soluções O técnico deverá logar no sistema com seu login e senha; após isso, abrirá a página inicial com seu menu, onde terá a opção de salvar soluções de problemas na base de dados, ou seja, o técnico, ao realizar a solução de um
56 56 chamado e achar isso necessário, efetuará no banco de dados o registro da solução usada por ele para resolver o problema, com o objetivo dessa informação ser acessada por outros técnico, facilitando o trabalho deles. Ele informará o tipo de problema e a solução usada de forma resumida. Figura 3.21 Diagrama de Atividades Manter base de soluções. Figura 3.22 Diagrama MVC Manter base de soluções.
57 57 Figura 3.23 Diagrama de Sequência Manter base de soluções Criar chamados O técnico e o cliente deverão logar no sistema com seu login e senha; após isso, terão que selecionar a opção de criar chamados no menu, o cliente poderá criar um número ilimitado de chamados, nos quais especificará os detalhes e o tipo do problema; depois, o chamado ficará à espera de um técnico selecioná-lo a fim de buscar a solução do problema. O técnico e o criará chamados somente quando o cliente estiver impossibilitado de fazê-lo ou sem acesso ao sistema, então, o cliente terá que informar os detalhes do problema para o técnico via telefone. Para a criação de um chamado, será necessário que se informe o tipo de problema, os detalhes e a prioridade do chamado, que pode ser de urgência alta, média ou baixa.