Plataforma Web de suporte a uma aplicação para Helpdesk baseada em Trouble Tickets



Documentos relacionados
Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

2 Diagrama de Caso de Uso

Sistema de Controle de Solicitação de Desenvolvimento

Conteúdo Programático de PHP

Escola Superior de Tecnologia de Setúbal. Projecto Final

Noções de. Microsoft SQL Server. Microsoft SQL Server

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

PHC dteamcontrol Externo

PHC dteamcontrol Interno

Programação Web Prof. Wladimir

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Prof. Marcelo Machado Cunha

Manual de Utilizador

Organizar a estrutura do site

Engenharia de Software Sistemas Distribuídos

O aumento da força de vendas da empresa

Proposta de Estágio Ano letivo 2011 / 2012 Tema: SISMS - sistema integrado de suporte e monitorização para serviços comerciais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

ORGANIZAÇÃO CURRICULAR

PROJETO PÁGINA WEB GRUPO DISCIPLINAR DE EF

Base de Dados para Administrações de Condomínios

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Histórico de Revisão Data Versão Descrição Autor

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

PLATAFORMA INFORMÁTICA DE REQUISIÇÃO DE POLICIAMENTO DE ESPETÁCULOS DESPORTIVOS (PIRPED)

Construir um e-portefólio com o Blogger

AGRUPAMENTO DE ESCOLAS DR. FRANCISCO SANCHES PLANIFICAÇÃO DISCIPLINA. TECNOLOGIAS da INFORMAÇÃO e COMUNICAÇÃO (TIC) 7º Ano. Ano letivo

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Tarefa Orientada 16 Vistas

Versão Data Autor(es) Revisor(es) Alterações Aprovação M.B. Elisa Decq. Regina Bento Mota M.B.

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Pesquisa e organização de informação

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Documento de Análise e Projeto VideoSystem

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

FERRAMENTAS E SOLUÇÕES DE APOIO À GESTÃO E MANUTENÇÃO DE ATIVOS

Engenharia de Requisitos Estudo de Caso

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

CONSULTA AO MERCADO RFI REQUEST FOR INFORMATION CONSOLIDAÇÃO DE DÚVIDAS APRESENTADAS

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

PHC Recursos Humanos CS

Sistema de Gestão de Ciclo de Vida de Farmácias AVP003. Manual de Utilizador Externo - Entregas ao Domicílio e Vendas via Internet

(Consulta Real em Ambiente Virtual)

Sistemas Distribuídos

PLANIFICAÇÃO ANUAL DE CONTEÚDOS

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

18/04/2006 Micropagamento F2b Web Services Web rev 00

AGRUPAMENTO DE ESCOLAS DR. GINESTAL MACHADO

ü Curso - Bacharelado em Sistemas de Informação

12 EXCEL MACROS E APLICAÇÕES

Ensino técnico Integrado ao médio.

PHC dsuporte Externo

Processos de Desenvolvimento de Software

MANUAL DO UTILIZADOR

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Manual do Utilizador do Registo Prévio (Entidades Coletivas e Singulares)

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Engenharia de Software

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Aplicação Prática de Lua para Web

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

Roteiro 2 Conceitos Gerais

EMENTAS DAS DISCIPLINAS

Rock In Rio - Lisboa

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Supply4Galp (S4G) FAQs Fornecedores Versão

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

LeYa Educação Digital

Universidade do Minho Licenciatura em Engenharia Informática

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Bases de Dados 2007/2008. Aula 1. Referências

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Solicitação de Equipamento Verba de Projeto Abril 2006

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

INTERNET HOST CONNECTOR

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Curso de Aprendizado Industrial Desenvolvedor WEB

Notas de Aula 05: Aplicação de um caso de uso

Gerenciamento de Incidentes

Sistema de Acompanhamento ao Desempenho do Aluno

Transcrição:

Plataforma Web de suporte a uma aplicação para Helpdesk baseada em Trouble Tickets Patrícia Magalhães Ferreira - 22493 - patricia.mf.ferreira@alunos.ipb.pt Trabalho realizado sob a orientação de Engenheiro José Paulo Santos jps@zarco.pt Professora Luísa Jorge ljorge@ipb.pt Engenharia Informática 2012/2013 i

Plataforma Web de suporte a uma aplicação para Helpdesk baseada em Trouble Tickets Relatório da UC de Projeto Licenciatura em Engenharia Informática Escola Superior de Tecnologia e Gestão Patrícia Ferreira 2012/2013 iii

A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório. v

Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Eng. José Paulo Santos, Orientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Professora Luísa Jorge, Coorientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Aceite para avaliação da UC de Projeto vii

Agradecimentos Ao longo da pesquisa, investigação e análise de todas as tecnologias envolvidas neste trabalho, tive oportunidade de contar com o apoio de diversas pessoas. Gostaria então de prestar o meu profundo agradecimento a todos aqueles que de forma direta ou indiretamente contribuíram para o sucesso deste projeto. Quero agradecer principalmente à minha família, por ter estado sempre do meu lado, em especial aos meus pais, irmã e namorado a quem dedico este trabalho. Por todo o apoio, compreensão, suporte e incentivo que me deram ao longo do meu percurso e também pelas condições necessárias que sempre fizeram questão que tivesse. Gostaria também de agradecer ao Engenheiro José Paulo Santos, meu orientador de estágio, pela disponibilidade prestada, incentivo e por todo o apoio a que se propôs. À professora Luísa Jorge, minha Coorientadora pela disponibilidade que sempre demonstrou em acompanhar este projeto. Um agradecimento especial a toda a Escola Secundária João Gonçalves Zarco, pela receção e pelo espirito de entreajuda e por tudo o que me proporcionaram desde o início desta caminhada. Por fim, a todos os meus amigos e colegas pela confiança, preocupação e incentivo permanente, que nunca me deixaram ficar mal. Principalmente à minha irmã Marisa Ferreira pelo apoio e auxílio, que foi fundamental para os resultados que aqui apresento, com apoio constante e que fez de mim uma pessoa ainda mais confiante. A todos, o meu sincero Obrigada. ix

Resumo O projeto documentado neste relatório consiste no desenvolvimento de uma aplicação, nomeadamente uma plataforma Web de suporte a uma aplicação para Helpdesk- baseada em Trouble Tickets, resultando da necessidade de facilitar e gerir o bom funcionamento dos equipamentos de uma escola. A criação desta aplicação tem por objetivo facilitar e otimizar a resolução de problemas técnicos nas salas de aulas informando um responsável técnico de anomalias nos equipamentos da escola. A aplicação documenta todos os problemas reportados e informa todos os utilizadores do estado da sua resolução dos seus pedidos de suporte técnico. Emergindo também da importância da gestão de dados por parte da instituição em questão e em resposta à coordenação de toda a informação a partir de um único ponto, este projeto assenta no desenvolvimento de um conjunto de utilizações de acesso remoto. Estes procedimentos remotos facultam a manipulação de conteúdos, como a inserção, remoção e edição de dados. A aplicação concebida visa atingir um alto nível de usabilidade e desempenho, dando particular destaque à sua fácil utilização e ao seu design simplificado. A aplicação é de fácil compreensão e possui sistema de alerta de erros. O presente relatório tem como propósito esclarecer e descrever todo o projeto desenvolvido, dando destaque às aplicações, métodos e ferramentas utilizadas. Palavras-chave (Tema): Programação Web, Trouble Tickets, Helpdesk, Design Palavras-chave (Tecnologia): MySQL, PHP, HTML, Apache xi

Abstract The project documented in this report is the development of an application, including a web platform to support an application for Helpdesk-based Trouble Tickets, resulting from the need to manage and facilitate the proper functioning of the equipment of a school. The creation of this application aims to facilitate and optimize the resolution of technical problems in classrooms informing a technical anomaly in school facilities. The application documents all reported problems and inform all users of the status of the resolution of your technical support requests. Also emerging importance of data management by the institution in question, and in response to coordinate any information from a single point, this design relies on development of a set of uses for remote access. These procedures provide remote manipulation of content, such as inserting, removing, and editing data. The application is designed aiming at a high level of usability and performance, paying particular attention to its ease of use and simplified design. The application is easy to understand and has warning system errors. Keywords (Subject): Programação Web, Trouble Tickets, Helpdesk, Design Keywords (Technology): MySQL, PHP, HTML, Apache xiii

Índice 1 Introdução... 1 1.1 Enquadramento... 1 1.2 Apresentação do projeto... 2 1.2.1 Aplicação e gestão de conteúdos... 3 1.2.2 Plataforma Web... 4 1.3 Planeamento do projecto... 5 3. Investigação de Soluções Trouble Tickets Open Source:... 6 1.4 Metodologia... 6 1.5 Contributos deste trabalho... 7 1.6 Estrutura do relatório... 7 2 Tecnologia... 11 2.1 Soluções open source 2.2 Soluções open-source encontradas... 11 2.2.1 Simple Ticket... 11 2.2.2 etickets... 12 2.2.3 OTRS - Open Ticket Request System... 12 2.3 Apresentação do software utilizado... 12 2.4 Breve introdução às tecnologias... 13 2.4.1 Apache 2.0... 13 2.4.2 MySQL... 13 2.4.2.1 MySQL Editor... 14 2.4.2.2 DDL... 15 2.4.2.3 DML... 16 2.5 Introdução às linguagens... 16 2.5.1 HTML... 16 2.5.2 CSS... 16 2.5.3 PHP... 17 2.5.4 SQL... 18 Capítulo 3... 21 3 Análise... 21 3.1 Análise da solução pretendida... 21 3.2 Estudos de viabilidade... 22 3.3 Especificação dos requisitos do sistema... 22 3.3.1 Requisitos Funcionais... 23 3.3.2 Requisitos não Funcionais... 23 3.3.2.1 Usabilidade... 24 xv

3.3.2.2 Desempenho... 24 3.3.2.3 Segurança... 25 3.3.2.4 Prevenção de erros... 25 3.3.2.5 Satisfação... 25 3.3.3 Requisitos de interface... 25 3.3.4 Requisitos Complementares... 26 3.4 Perfis de utilizador... 26 3.5 Modelação UML... 27 3.5.1 Diagrama de Classes e Objetos... 27 3.5.2 Diagrama de casos de uso... 29 3.5.2.1 Atores... 31 4 Desenvolvimento... 35 4.1 Aplicação Administrativa de Gestão de Conteúdos... 35 4.1.1 Registo de um utilizador... 36 4.1.2 Sistema de Login... 38 4.1.3 Efetuar o Logout... 40 4.1.4 Inserir dados... 40 4.1.4.1 Registar Equipamentos... 41 4.1.4.2 Registar Pedido... 41 4.1.4.3 Registar Intervenção Técnica... 42 4.1.5 Editar dados... 43 4.1.5.1 Editar utilizadores... 43 4.1.5.2 Editar Pedidos... 44 4.1.6 Remover dados... 44 4.2 Aplicação Web... 45 4.2.1 Filosofia geral do design... 45 4.2.2 Estrutura técnica... 45 4.2.3 Conteúdo... 46 Capítulo 5... 51 5 Conclusões... 51 5.1 Objectivos realizados... 51 5.2 Limitações e trabalho futuro... 52 5.3 Apreciação global... 52 A.1 Código de criação das Tabelas... 61 A.2 Descrição técnica das tabelas... 63 C.1 Plataforma Web... 75 D.2 Sistema Login... 84 D.3 Sistema de Logout... 84

17

Capitulo 1 1 Introdução Neste capítulo é feita, de forma concisa a apresentação do projeto. É abordado essencialmente o enquadramento do mesmo, os objetivos principais, o planeamento de tarefas e a metodologia utilizada. 1.1 Enquadramento Este documento enquadra-se no âmbito da unidade curricular de Projeto, lecionada durante o 3º ano letivo de 2012/2013, da Licenciatura em Engenharia Informática da Escola Superior de Tecnologia e Gestão (ESTIG), do Instituto Politécnico de Bragança (IPB). Esta unidade curricular tem como objetivo fornecer a integração do aluno no mercado de trabalho, através da realização de um projeto ou estágio de maior envergadura onde se aplicam os conhecimentos adquiridos ao longo do curso. Incutindo não só o sentido de responsabilidade profissional, desenvolvendo novas competências profissionais, sociais e pessoais, mas também a vertente autodidata. Além de se revelar como sendo a melhor forma de adquirir novos conhecimentos e consolidar os já existentes, dotando os alunos de competências indispensáveis para o mundo profissional. O projeto que é descrito neste documento foi realizado no âmbito do desenvolvimento de uma aplicação de Helpdesk para a Escola Secundária João Gonçalves Zarco e tem como objetivo implementar uma aplicação Web que permita aos utilizadores reportar problemas técnicos ao nível dos equipamentos (computadores, impressoras, projetores, etc.). 1

1.2 Apresentação do projeto Com a necessidade de otimizar o tempo e deslocações surgiu a ideia de implementar um serviço de apoio a utilizadores para suporte e resolução de problemas técnicos, informática e tecnologias de informação recorrendo à criação de um sistema de Trouble Tickets. Este tema surgiu porque deparamo-nos, muitas vezes, com utilizadores que possuem dúvidas ou problemas de fácil e rápida resolução, em que muitas vezes, podem ser evitadas deslocações ao local onde se encontra o técnico. Como tal e devido à crescente informatização e utilização de computadores por parte das escolas sentiu-se a necessidade de criar sistemas de apoio aos utilizadores onde são reportados os problemas e é apresentado todo o processo da resolução do mesmo. Como a área de aplicação é a Escola Secundária João Gonçalves Zarco (ESJGZ), estabeleceuse como um dos principais objetivos o estudo e a análise da mesma, na perspetiva de se construir uma plataforma Web simples e de fácil utilização, capaz de sustentar a solução que foi idealizada. Por isso, antes de se iniciar a devida construção da aplicação foi necessário realizar uma larga e exaustiva recolha de informação e o seu correspondente tratamento. Esta tarefa adequa-se tanto para o desenvolvimento dos conteúdos gráficos, como também para toda a informação inserida na base de dados, toda ela, informação fidedigna, expandindo com determinada rapidez, todo o processo de desenvolvimento da aplicação. Assim sendo e como demonstra a Figura1., o projeto estrutura-se em três aplicações Web distintas: uma aplicação administrativa com funcionalidade de gestão de dados, facultando a manipulação e aumentando assim o nível de controlo de informação, uma aplicação a nível de um utilizador a que chamamos técnico, onde ficará alguém responsável pela gestão da informação inserida pelos utilizadores e por dar as devidas respostas, e aos olhos dos utilizadores uma plataforma Web um sistema de registo de pedidos e toda a informação inserida na aplicação e todo o seu histórico.

Figura 1. Visão geral do sistema. 1.2.1 Aplicação e gestão de conteúdos Esta área consiste num conjunto de elementos disponibilizados em formato Web, que permitem o tratamento e a gestão dos conteúdos existentes na aplicação Web. Num primeiro plano, os conteúdos inseridos nesta aplicação serão geridos e unicamente utilizados por administradores. No entanto, como é necessário existir outro tipo de perfil de utilizador, para técnicos responsáveis por dar resposta aos pedidos dos utilizadores, considerou-se a necessidade da criação de um registo de utilizadores - com estas características. Deste modo, sempre que seja necessário atualizar informação ou responder a pedidos de assistência técnica, qualquer técnico que esteja habilitado (e autorizado) pode fazê-lo. Para isso basta apenas criar um novo registo que possibilita o acesso à área de gestão dos diversos pedidos inseridos pelos utilizadores. É de notar que existem apenas 3 perfis de utilizadores nesta aplicação. O/os administrador/es que ficarão responsáveis pela gestão de todo o conteúdo da página, o/os técnico/os que ficarão apenas responsáveis pela gestão dos pedidos dos utilizadores, dando resposta e todo o acompanhamento necessários aos problemas reportados pelos utilizadores. Por fim temos o utilizador final (ou visitante), aquele a quem se destina todo este mecanismo de inserção de informação. Este tem acesso aos dados inseridos na aplicação de gestão, podendo apenas interagir com o sistema em dois casos: inserindo novos pedidos; acompanhando as intervenções técnicas feitas aos seus pedidos. Uma das vantagens deste tipo de aplicação é facilitar e tentar, de um modo mais rápido e documentado o suporte de gestão dos equipamentos que há nos diferentes espaços da instituição. 3

Este sistema de gestão integra as ferramentas necessárias para inserir, editar e remover conteúdos em tempo real. O objetivo é estruturar e facilitar a administração, distribuição e disponibilidade da informação, com recursos básicos de simples usabilidade e simples visualização de dados. Deste modo podemos dizer que esta aplicação Web não é totalmente autónoma pois exige a verificação e o acompanhamento das notificações recebidas, ou seja, a monotorização dos pedidos de assistência técnica - por parte dos utilizadores dos equipamentos. 1.2.2 Plataforma Web Consiste numa plataforma Web de suporte a uma aplicação, constituído por diversos componentes que se encontram detalhados no ponto 4.2 deste relatório, permitindo ao utilizador aceder a todo o tipo de informação relevante sobre o seu pedido de assistência técnica. Pretende-se disponibilizar informação estática mas, essencialmente a informação dinâmica, atualizando assim, automaticamente, os conteúdos necessários. A informação dinâmica que se refere advém da aplicação descrita atrás, onde os dados colocados são prontamente revelados na plataforma Web. Resume-se então a uma aplicação desenvolvida em ambiente Web, orientada para o suporte e acompanhamento de possíveis problemas técnicos nos equipamentos. Pretende-se fundamentar todo o projeto relacionando as funcionalidades da aplicação com o seu conteúdo e a sua estética dando-se um destaque particular ao Web Design adequando os objetos à sua função, de uma forma esteticamente agradável [2]. Um design adequado/apelativo é um fator determinante para assegurar visitas, principalmente quando temos um determinado público-alvo. A estrutura desta plataforma Web foi desenvolvida tendo em consideração o nível de visualização do utilizador, criando uma solução de fácil navegação e manuseamento. Além de possuir um design simples (para não se tornar numa aplicação pesada ) é bastante acessível aos utilizadores, mesmo para aqueles que possuam pouca experiência em navegação Web.

1.3 Planeamento do projecto A metodologia de trabalho neste projeto foi dividida em seis fases distintas: Fase 1: Levantamento e especificação de requisitos; Fase 2: Análise do Sistema; Fase 3: Investigação de Soluções Trouble Tickets Open Sourse; Fase 4: Implementação; Fase 5: Testes de verificação e validação; Fase 6: Produção da documentação. Abaixo seguem-se as representações pormenorizadas do planeamento de cada uma das fases acima mencionadas. 1. Levantamento e especificação de requisitos; Integração nas políticas de apresentação de conteúdos da ESJGZ; Estudo e levantamento de requisitos; Recolha bibliográfica sobre a informação a gerir; Tratamento de dados; Identificação de funcionalidades e definição dos conteúdos; Esquematização do modelo de dados; Definição do layout e identificação da estrutura; 2. Análise do Sistema Pesquisa e definição das ferramentas e métodos de implementação do sistema; Modelação do sistema a desenvolver; 5

3. Investigação de Soluções Trouble Tickets Open Source: Pesquisa de soluções já existente e que possam ir de encontro à solução pretendida; 4. Implementação: Elaboração do layout e produção de elementos gráficos; Criação da estrutura da base de dados; Desenvolvimento do sistema; 5. Testes de verificação e validação: Testes para validar o sistema e seu consecutivo aperfeiçoamento; 6. Produção da documentação: Redação do relatório final. 1.4 Metodologia Num primeiro plano efetuou-se a definição de funcionalidades do sistema e o estudo de conteúdos que a aplicação Web deveria conter. Após efetuar a recolha bibliográfica e reunir informações concretas, elaborou-se um processo de análise, modelando o sistema a desenvolver. Seguiu-se o estudo da linguagem de programação a utilizar e a instalação e configuração das tecnologias. Construiu-se a base de dados para reunir dados relativos à aplicação e desenvolveu-se a interface gráfica da página Web. Iniciou-se, assim, o processo de desenvolvimento do sistema e de aprendizagem de novas aplicações.

1.5 Contributos deste trabalho O trabalho desenvolvido, ao longo deste último ano letivo, possibilita dotar a ESJGZ de uma nova plataforma que permite, de modo ativo, apresentar aos utilizadores uma forma dinâmica de reportarem problemas ao nível dos equipamentos da escola. A tarefa de manutenção da informação torna-se, assim, simples o que proporciona uma maior fiabilidade, conseguindo uma elevada consistência de informação. Deste modo, tenta-se dar um passo decisivo para a melhoria do funcionamento da instituição em causa. O desenvolvimento deste trabalho proporcionou um aperfeiçoamento do conhecimento técnico na área da programação, bem como um complemento na área do design e no desenvolvimento de interfaces. 1.6 Estrutura do relatório A estrutura deste relatório tenciona proporcionar uma fácil perceção do funcionamento da aplicação, apresentando aqui os resultados. 1. O primeiro capítulo visa enquadrar o leitor no tema que contextualiza todo o projeto, especificando os objetivos propostos e disponibilizando informação essencial para a integração no assunto em questão. 2. O segundo capítulo trata de descrever detalhadamente todas as tecnologias utilizadas no desenvolvimento da aplicação, relatando, cuidadosamente, todo o software e linguagens de programação utilizadas. 3. Já o terceiro capítulo apresenta uma análise técnica da solução pretendida, efetuada previamente à implementação do projeto, especificando todos os requisitos e descrevendo a modelação utilizada na análise do processo de desenvolvimento. 7

4. O quarto capítulo descreve a implementação prática e técnica do projeto, dividindo-se em dois grandes módulos de destaque, enunciando, detalhadamente, os elementos da plataforma de gestão de conteúdos e da plataforma Web desenvolvida. 5. Por fim, o quinto capítulo, aborda algumas considerações finais e apresenta os resultados obtidos, descrevendo também aspetos relacionados com possíveis melhorias. Este relatório enumera as etapas de design (e de engenharia de interface) da plataforma desenvolvidas - utilizando alguns padrões da Web. Além das etapas de construção de uma interface minimamente atrativa para os utilizadores, este documento apresenta também as etapas estabelecidas na implementação de código que serão desenvolvidas no capítulo 4. O relatório contém ainda uma área de anexos, onde por uma questão de organização, está presente material de teor mais técnico, por uma questão de organização. Este material poderá eventualmente ajudar a compreender com maior rigor alguns dos mecanismos e metodologias base da solução.

9

Capitulo 2 2 Tecnologia Neste capítulo faz-se uma descrição, de forma resumida, das diferentes tecnologias e ferramentas utilizadas no desenvolvimento deste projeto. 2.1 Soluções open source O termo open source ou código aberto, foi criado pela OSI (Open Source Initiative) e refere-se a software também conhecido por software livre [17]. Inicialmente foi feita uma pesquisa de possíveis aplicações semelhantes que pudessem ser adaptadas ao projeto em causa, pesquisa essa que também serviu para uma melhor compreensão do funcionamento de aplicações Helpdesk. De facto surgiram muitas aplicações já desenvolvidas mas chegou-se à conclusão que se optaria por desenvolver uma aplicação de raiz. De certa forma essa escolha deve-se ao facto de trazer mais benefícios para o percurso de aprendizagem. 2.2 Soluções open-source encontradas 2.2.1 Simple Ticket O Simple Ticket é projetado para facilitar o suporte de computadores aos seus clientes, especificamente para o suporte de TI (Tecnologias da Informação) de empresas para atender a vários clientes de pequenas empresas. O software foi programado em Ruby on Rails. 11

2.2.2 etickets O etickets é um sistema de tickets eletrónico, programado em PHP, que recebe pedidos de assistência técnica via email ou numa plataforma Web. 2.2.3 OTRS - Open Ticket Request System O OTRS é um sistema direcionado para o registo de pedidos Helpdesk (ex. pedidos de suporte ou pedidos de um determinado problema), e outros processos existentes numa empresa/organização. 2.3 Apresentação do software utilizado Depois de analisar com clareza os objetivos propostos surge a necessidade de um estudo alargado sobre as tecnologias e ferramentas a utilizar. Verificou-se que, para além de simples HTML (dado que era pretendido uma gestão de conteúdos), a linguagem de programação mais adequada seria PHP, uma vez que foi requisito da instituição o uso de soluções opensource e também porque fornece suporte a base de dados e permite gerar conteúdo dinâmico na Web. Trata-se de uma linguagem extremamente modularizada com um elevado desenvolvimento tecnológico, tornando-se ideal para instalação e uso em servidores Web em soluções opensource. A integração de PHP com MySQL é muito mais facilitada, garantindo um excelente desempenho e estabilidade, além de ser um sistema de base de dados de livre acesso. Das ferramentas utilizadas, salientam-se, portanto, editores tradicionais de HTML/PHP, programas de tratamento de imagem, sistemas de gestão de base de dados - entre outros. Foi também utilizada, como tecnologia de referência, o sistema de gestão de base de dados MySQL, atualmente amplamente utilizado - sendo uma das base de dados mais populares. É talvez a base de dados que mais evoluiu nos últimos tempos, passando de um suporte frágil e

pouco seguro a um suporte, no mínimo, respeitável, bastante indicado para aplicações Web [4]. 2.4 Breve introdução às tecnologias Esta secção do relatório visa descrever as tecnologias e os softwares utilizados no desenvolvimento da aplicação Web. Para um melhor entendimento, apresenta-se uma breve descrição de cada uma das tecnologias utilizadas: Para a camada de estrutura utilizou-se HTML; Para a camada de apresentação ou design de interface foi usado CSS; Para o armazenamento de dados foi utilizado MySQL; Para auxílio da manutenção dos conteúdos existentes na base de dados e consequente amostra dos mesmos, utilizou-se como linguagem de programação base o PHP. O HTML e CSS, são linguagens clientside (funcionam apenas no lado do cliente). O MySQL e o PHP são tecnologias serverside, que, para funcionar, necessitam de um servidor destinado a tratar as requisições de cada página. 2.4.1 Apache 2.0 O servidor Apache foi criado em 1995 por Rob McCool e é o mais bem-sucedido servidor Web livre. É a principal tecnologia da Apache Software Foundation responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via Web, processamento de dados e execução de aplicações distribuídas [18]. 2.4.2 MySQL MySQL é um sistema de gestão de base de dados relacional (SGBD), que utiliza a linguagem SQL Linguagem de Consulta Estruturada, como interface. Como características principais, o MySQL tem um excelente desempenho e estabilidade, é um software open source suportando praticamente qualquer plataforma atual. Além de acessível, permite gerir grande quantidade de informação, facultando o processamento de dados armazenados na Base de Dados. É compatível com várias linguagens 13

de programação, desde o simples PHP até ao Java, sendo sobretudo um software de acesso livre [19]. Possui também ferramentas de administração local e administração remota. A administração remota de uma base de dados em MySQL só pode ser feita por intermédio de uma ligação remota ao servidor através de um utilizador administrador com privilégios para os diferentes esquemas de base de dados existentes [4]. A arquitetura interna do MySQL é provida de duas camadas principais, a primeira camada, que é a camada de parser e optimização de consultas SQL e a segunda que é onde estão ligadas as Engenharias de Armazenamento de forma modular. A Figura 2. ilustra as camadas citadas e outros componentes participantes. Figura 2. Arquitetura do MySQL [25]. 2.4.2.1 MySQL Editor O MySQL Editor é uma ferramenta de administração de acesso remoto. Este software permite também criar, executar e otimizar solicitações SQL em ambiente gráfico e foi criado para auxiliar os programadores na análise dos dados armazenados em base de dados. Permite ainda a execução dos dados de forma gráfica, tornando-se mais fácil e intuitivo para o utilizador.

A figura 3. demonstra uma consulta remota à base de dados. A query realizada seleciona todos os Utilizadores. Figura 3. Consulta remota à Base de Dados 2.4.2.2 DDL DDL Linguagem de Definição de Dados, é uma linguagem utilizada para a definição de estruturas de dados. Uma DDL permite ao utilizador definir novas tabelas e novos elementos associados. Inicialmente a DDL referia-se a um subconjunto SQL, atualmente é utilizada num sentido genérico para referir-se a qualquer linguagem formal para descrição de estruturas de dados ou de informação [20]. Os comandos básicos da DDL são por exemplo: CREATE, ALTER e DROP e na generalidade permitem, criar, alterar e remover uma determinada base de dados, tabela ou outra estrutura associada 15

2.4.2.3 DML DML - Data Manipulation Language é um subconjunto da linguagem SQL. É utilizado para realizar consultas, alterações, inclusões ou exclusões de dados presentes nas tabelas da base de dados. Os comandos básicos da DML são por exemplo: INSERT, UPDATE, DELETE e SELECT. Existem dois tipos de DMLs: Procedimental e Declarativa. Procedimental - Especifica como os dados devem ser obtidos da base de dados. Declarativa - Os utilizadores não necessitam de especificar o caminho de acesso [21]. 2.5 Introdução às linguagens No decorrer do desenvolvimento deste projeto foram utilizadas várias linguagens de programação. De seguida é representado um breve resumo sobre cada uma. 2.5.1 HTML O HTML, acrónimo de HyperText Markup Language, define-se como sendo uma linguagem universal de desenvolvimento de páginas de Internet. É baseada num conjunto de etiquetas que por sua vez, são compostas por elementos que definem um documento e a sua forma de apresentação. É uma linguagem bastante acessível e relativamente fácil de aprender, além de ser bastante poderosa, encontrando-se em constante evolução de forma a atender às necessidades dos utilizadores e à constante evolução da Web [22]. 2.5.2 CSS CSS significa Cascading Style Sheets e é uma das recomendações definidas pela W3C [3].

O seu objetivo é permitir aos programadores aplicar estilos como a fonte, a cor, o espaçamento e o posicionamento de elementos, de forma a estruturar documentos como o HTML. É utilizada para definir a apresentação de documentos de linguagens de marcação, como o HTML ou o XML, assim fornecendo a separação entre a estética e o conteúdo. É uma linguagem de formatação de alto nível, facilmente compreendida e implementada [1]. Foi utilizada no desenvolvimento dos menus e no restante design da página Web. 2.5.3 PHP PHP é o acrónimo recursivo para Hypertext Preprocessor, originalmente Personal Home Page. É uma linguagem interpretada e open source, utilizada para gerar conteúdo dinâmico na Web. A linguagem PHP é uma linguagem de programação serverside de domínio específico, o seu escopo estende-se a um vasto campo de atuação de desenvolvimento Web, sendo uma linguagem estruturada e orientada a objetos [1]. Figura 4. Estrutura do PHP [24] É uma linguagem de programação versátil, uma vez que interage de forma embebida com a linguagem HTML, sendo a sua principal funcionalidade desenvolver websites dinâmicos. Estas páginas Web dinâmicas resultam de acessos e consultas a base de dados, através de SQL e da tecnologia ODBC, uma vez que o PHP permite o acesso a informação armazenada em 17

bases de dados. Tem uma sintaxe similar ao C ou C++ e trata-se de uma linguagem extremamente modularizada, que a torna ideal para o uso em servidores. Na prática construir uma página dinâmica baseada em bases de dados é mais simples utilizando PHP, uma vez que fornece suporte a um grande número de bases de dados diferentes, sendo de destacar o MySQL [5]. O PHP tem suporte a diferentes protocolos como o HTTP, POP3, SNMP, SOAP, etc e tem portabilidade, pois corre na maioria dos servidores Web e sistemas operativos existentes [6]. Esta linguagem foi a mais utilizada ao longo de todo o projeto. Foi utilizada no, processo de registo e de inserção de utilizadores, alteração e remoção de elementos da base de dados - Esta linguagem é crucial no decorrer da implementação desta aplicação. 2.5.4 SQL SQL - Structured Query Language - ou linguagem de consulta estruturada é uma linguagem interativa de pesquisa declarativa para uma base de dados relacional. Como o próprio nome indica permite a pesquisa estruturada de elementos da base de dados. Permite fazer consultas a dados de bases de dados relacionais, definir esquemas de base de dados e gerir controlos de acesso a objetos. É uma linguagem de fácil utilização e de grande simplicidade [23]. A pesquisa ou a gestão da base de dados permite inserir, editar e eliminar informação. Esta gestão é conseguida através de queries à base de dados - operações levadas a cabo através da utilização de palavras-chave, como por exemplo: select, insert, update, delete, where, group by, having, order by, etc.

19

Capítulo 3 3 Análise O presente capítulo aborda a fase de análise do projeto, recorrendo-se nomeadamente à linguagem de modelação UML. Esta linguagem permite especificar, documentar e estruturar o sistema, fornecendo uma visualização lógica mais abrangente do desenvolvimento do projeto. 3.1 Análise da solução pretendida Este projeto teve início na denominada Fase 1, também referenciada neste documento por Análise, pesquisa e desenvolvimento conceptual. Antes de começar o desenvolvimento da aplicação, foram efetuadas bastantes pesquisas, nomeadamente recolha da informação, através de um processo que parte desde o levantamento de requisitos, passando pela identificação de funcionalidades e pela definição de conteúdos. Compreendido o público-alvo desta solução, iniciou-se um estudo sobre as aplicações, métodos, linguagens de programação e ferramentas que seriam viáveis e capazes de responder, não só às necessidades da aplicação, mas também aos requisitos primordiais do projeto. Ao nível de linguagem de programação procurou-se aquela que melhor se adaptava à necessidade proposta e que coadjuvada com os meus conhecimentos, resultava numa melhor opção. Após essa procura constatou-se que o PHP seria a melhor solução. Após a escolha de todas as ferramentas foi necessário proceder à definição dos objetivos e especificar e clarificar a respetiva estratégia a utilizar. Foi feita a análise preliminar do layout da plataforma Web, que depois da criação de vários protótipos, conduziu àquele que mais se adequava ao objeto 21