Aplicação Web para Gerenciamento dos Processos e Serviços prestados pelo Laboratório de Computação e Informática Rafael Patricio Professor Dalton Solano dos Reis - Orientador Roteiro de apresentação • Introdução / Objetivos • Fundamentação Teórica – Contextualização – Tecnologias – Trabalhos Correlatos • Desenvolvimento – Requisitos Funcionais / Não Funcionais – Implementação – Resultados e Discussão • Conclusão / Extensões Introdução / Motivação • Cenário atual: – Informatização / Automatização – Competitividade – Clientes • Motivação: – – – – TCC I / Dalton FURB / LCI Manutenção DSC Formulários Objetivos • Gerenciar os processos internos do LCI gerados a partir dos serviços prestados pela sua equipe de funcionários • Controlar o acesso dos usuários ao sistema através de login, senha e perfis • Desenvolver um ambiente Web para disponibilização destes recursos Fundamentação Teórica Contextualização • Organizações: – Adequação de processos – Competitividade • Gestores: – Subsídios auxiliares à tomada de decisão • Gerenciamento das informações: – Informatização • Impressos: – Executivos: 150 horas / ano solicitando e aguardando documentos – Pessoas: 20 a 30% do tempo localizando e recuperando informações de documentos e arquivos Fundamentação Teórica Tecnologias Framework Struts2 • Struts.XML – <action> • Name • Class • Method – <result> Fundamentação Teórica Tecnologias • Model View Controller (MVC) – padrão de arquitetura (separar em camadas distintas): • lógica, • interface • fluxo da aplicação • Cascading Style Sheet (CSS) – Estilos (configurações de fonte, cores, ..) • JavaScript – Ambiente Cliente Fundamentação Teórica Trabalhos Correlatos • Software Relativa IT – Manager (Relativa Soluções, 2008) • Sistema de Gestão de TCCs (Ribeiro, 2007) • Sistema Web para Controle e Gerenciamento de Manutenções (Roeder, 2006) • Ferramenta de Apoio a Gerência de Requisitos Baseada no Modelo CMMI (Meisen, 2005) Desenvolvimento Requisitos Funcionais (alguns) • Solicitações de serviço: – alunos e professores realizarem a abertura de chamados – funcionários do LCI realizarem o gerenciamento destes chamados • Registro de observações pertinentes aos chamados • Funcionários do LCI – preencher relatórios de atividades – registrar seus horários de trabalho – gerenciar recursos disponíveis em estoque Desenvolvimento Requisitos Não Funcionais • Ser implementado utilizando as linguagens Java e JSP • Utilizar banco de dados MySQL para o armazenamento das informações • Estar disponível em ambiente Web, sendo compatível ao servidor Apache Desenvolvimento DCU Desenvolvimento MER Desenvolvimento Técnicas e Ferramentas • Java 2 Standard Edition (J2SE) – versão 1.6.0.07 compilada em versão 1.5 – NetBeans IDE 5.5 • Java Server Pages (JSP) – NetBeans IDE 5.5 • MySQL 5.1.11 – DbSchema 5.1 – MySQL Administrator 1.2.12 – MySQL Query Browser 1.2.12 • Enterprise Architect 6.1.785 Desenvolvimento Arquitetura • Organização • Flexibilidade • Segurança Desenvolvimento Interface • Organização – Conteúdo / Formatação • Agilidade .botaoInserir { width : 90px; height : 26px; font : bold 13px/15px calibri; text-decoration : none; text-align : center; background-position : left; background-image : url(icones/add.gif); background-repeat : no-repeat;} Desenvolvimento BD • Case Sensitive: – BYNARY • Caracteres especiais: – character-set – useUnicode – pageEncoding • Desempenho: – Adilson / PK numérica – Adilson / Char • PL/SQL: – Segurança DELIMITER $$ CREATE DEFINER = `db_jsplci`@`campeche.inf.furb.br` TRIGGER `lci_chamado_update` AFTER UPDATE ON `lci_chamado` FOR EACH ROW BEGIN IF (NEW.IE_ESTAGIO <> OLD.IE_ESTAGIO) THEN INSERT INTO lci_chamado_estagio (IE_ESTAGIO, DT_ESTAGIO, NR_SEQ_CHAMADO, NR_SEQ_USUARIO) VALUES (NEW.IE_ESTAGIO, NOW(), NEW.NR_SEQUENCIA, NEW.NR_SEQ_USUARIO_ATUAL); if (NEW.IE_ESTAGIO = 'D') then call lci_gerar_responsavel(NEW.NR_SEQUENCIA, NEW.NR_SEQ_USUARIO_ATUAL); end if; END IF; END $$ DELIMITER ; Desenvolvimento Estrutura <html> <head> <link rel="stylesheet" type="text/css" href="lci.css"> <script src="lci.js" type="text/javascript"></script> </head> <action <body> class="br.com.webaction.Estoque" <iframe id="iGridEstoque" method="gerarGrid“ name="iGridEstoque" name="gerarGridEstoque"> src="gerarGridEstoque.action" <result name="success"> width="100%" height="70%" iGridEstoque.jsp scrolling="auto" frameborder="1"> </result> </iframe> </action> <iframe id="iDetalheEstoque" name="iDetalheEstoque" src="iDetalheEstoque.jsp" width="100%" height="30%" scrolling="auto" frameborder="1"> </iframe> </body> </html> Desenvolvimento Operacionalide Desenvolvimento Testes • Início em 13 de outubro de 2008: – 1 administrador – 2 lci – 2 professor / aluno • Sensações iniciais: – – – – “Eu tenho que digitar duas vezes para cadastrar um usuário?” “Sempre devo clicar primeiro nesse botão?” “A navegação/usabilidade está confundindo um pouco!” “Por que tem este Selecione! aqui nestes campos?” • Chamados: 5 Desenvolvimento Testes • Versão em 28 de outubro de 2008: – 1 administrador – 2 lci – 2 professor / aluno • Sensações: – “Ficaram boas as alterações no sistema!” – “Agora está fácil de usar!” – “A utilização do sistema está tranqüila..” • Chamados (até 6/12): 16 Desenvolvimento Resultados e Discussão • Desenvolvimento Web • PL/SQL • Usabilidade • Navegadores Conclusões • Contexto global: – Sucesso organizações Evolução tecnológica • Contexto da aplicação: – Utilização parcial dos módulos – Alcance dos objetivos (gerência de chamados) • Contexto tecnológico – Ambiente de desenvolvimento favorável (Struts2 / MVC) – Incompatibilidade com navegadores diferentes ao Internet Explorer • Contexto pessoal – Conquista em nível acadêmico e profissional Extensões • Tornar a aplicação compatível aos diversos navegadores • Substituir o framework Struts2 por uma tecnologia ainda mais recente • Agregar novas funcionalidades aos módulos de gerenciamento de atividades e gerenciamento de estoque Apresentação prática. Obrigado!