UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA



Documentos relacionados
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

UFG - Instituto de Informática

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Universidade da Beira Interior

02 - Usando o SiteMaster - Informações importantes

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

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

Manual do Visualizador NF e KEY BEST

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

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

Manual SAGe Versão 1.2 (a partir da versão )

Manual do usuário. v1.0

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Desenvolvendo Websites com PHP

Aplicação Prática de Lua para Web

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MANUAL DO PVP SUMÁRIO

MANUAL DO GERENCIADOR ESCOLAR WEB

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

HIBERNATE EM APLICAÇÃO JAVA WEB

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Operador de Computador. Informática Básica

Fox Gerenciador de Sistemas

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Engenharia de Software III

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Manual de Utilização

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Histórico da Revisão. Data Versão Descrição Autor

Figura 1 - Arquitetura multi-camadas do SIE

LINGUAGEM DE BANCO DE DADOS

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

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

TECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

4 O Workflow e a Máquina de Regras

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Manual do Painel Administrativo

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Documento de Arquitetura

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

OCOMON PRIMEIROS PASSOS

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

"Manual de Acesso ao Moodle - Discente" 2014

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

UNICO Clientes/Fornecedores/Técnicos/Transportadoras/Vendedores Produtos Serviços Outros Vendas Notas Fiscais...

Iniciação à Informática

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Manual do Sistema de Cadastro de Cultivares Locais, Tradicionais e Crioulas

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

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

Trecho retirando do Manual do esocial Versão 1.1

MANUAL DA SECRETARIA

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Tutorial Sistema de Eventos de Certificação e Capacitação

2013 GVDASA Sistemas Cheques 1

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

MANUAL DE SUPORTE. Controle de Suporte. Este manual descreve as funcionalidades do controle de suporte.

Orientada a serviços: JAX-WS SOAP API

Plano de Gerenciamento do Projeto

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

SISTEMA DE ADMINISTRAÇÃO DE LOCAÇÃO IMOBILIÁRIA LISTA DE ATUALIZAÇÕES NOVAS

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Manual do Almoxarifado SIGA-ADM

Cadastramento de Computadores. Manual do Usuário

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado

INTERNET HOST CONNECTOR

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

2 Diagrama de Caso de Uso

MANUAL ESCOLA FLEX. Revisado em 09/07/2008. Sistema Flex

Microsoft Access XP Módulo Um

Transcrição:

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UTILIZAÇÃO DE JSF, PRIMEFACES, HIBERNATE PARA DESENVOLVIMENTO DE UMA APLICAÇÃO DE GESTÃO EDUCACIONAL. TEDY MARCOS MIRANDA FIROMI ORIENTADOR: FLÁVIO UBER MARINGÁ 2014

TEDY MARCOS MIRANDA FIROMI UTILIZAÇÃO DE JSF, PRIMEFACES, HIBERNATE PARA DESENVOLVIMENTO DE UMA APLICAÇÃO DE GESTÃO EDUCACIONAL. Trabalho apresentado como requisito para a aprovação no curso de Especialização em Desenvolvimento de Sistemas para Web da Universidade Estadual de Maringá. Orientador: Prof. Flávio Uber MARINGÁ 2014

TEDY MARCOS MIRANDA FIROMI UTILIZAÇÃO DE JSF, PRIMEFACES, HIBERNATE PARA DESENVOLVIMENTO DE UMA APLICAÇÃO DE GESTÃO EDUCACIONAL. BANCA EXAMINADORA Orientador: Prof. Flávio Uber Prof. Munif Gebara Junior Prof. Yandre Maldonado Prof. Gomes da Costa

SUMÁRIO 1. INTRODUÇÃO... 7 1.1. DEFINIÇÃO DO PROBLEMA... 8 1.2. JUSTIFICATIVA E RELEVÃNCIA... 8 1.3. OBJETIVO GERAL... 9 1.4. OBJETIVO ESPECÍFICO... 9 1.5. DELIMITAÇÃO DO ESTUDO... 9 1.6. CONTEXTUALIZAÇÃO DO TRABALHO... 10 2. REVISÃO DA LITERATURA... 11 2.1. JAVA... 11 2.2. MÁQUINA VIRTUAL... 12 2.3. TOMCAT... 12 2.4. JAVA SERVER FACES... 13 2.5. HIBERNATE... 16 3. TECNOLOGIAS ADOTADAS... 19 3.1. CONFIGURAÇÃO DO CONTROLADOR JSF... 19 3.2. FACES-CONFIG.XML... 19 3.4. ANOTAÇÕES JPA 2... 21 3.4.1. ANOTAÇÃO@ENTITY... 21 3.4.2. ANOTAÇÃO@ID E @GENERATEDVALUE... 21 3.5. HERANÇA... 22 4. DESCRIÇÃO DO SISTEMA... 24 4.1. HISTÓRIA DA INSTITUIÇÃO... ERRO! INDICADOR NÃO DEFINIDO. 5. CONCLUSÃO... 32 APÊNDICE A... 34

LISTA DE ILUSTRAÇÕES Figura 1-Respondendo a uma solicitação de cliente para uma página JSP... 14 Figura 2-Mapeamento Objeto Relacional... 17 Figura 3-Mapeamento usando anotações... 20 Figura 4-Anotações... 21 Figura 5-Diagrama de Caso de Uso... 24 Figura 6-Diagrama de Classes... 25 Figura 7-Tela principal do sistema... 27 Figura 8-Formulário atualização de frequência... 30 Figura 9-Relatório diário de frequências... 31

RESUMO Nos dias atuais, é impossível viver num mundo sem a Internet. Ela tomou parte dos lares das pessoas em todo o mundo. Estar conectado a rede mundial passou a ser uma necessidade de extrema importância, onde a internet também esta presente nas escolas, faculdades, empresas e diversos locais, possibilitando acesso às informações e noticias do mundo em apenas um click. E com o surgimento de novas tecnologias e linguagens de programação não é difícil perceber o acelerado crescimento no desenvolvimento de aplicativos voltados para a Web, que desperta em profissionais e entusiastas um grande interesse em aprender e se aperfeiçoarem nessa tecnologia. No entanto, tornou-se possível o emprego de soluções e tecnologias destinadas a qualquer área profissional, desde pequenas a grandes empresas tornando possível minimizar os processos através da sistematização das regras de negócios envolvidas nos processos ou setores de alguma determinada área. Contudo, a abordagem adotada na execução desse trabalho também se destina ao processo ágil e a resolução de problemas, mas voltada a área acadêmica, onde a informação muitas vezes tornase dificultosa e árdua no seu processo de recuperação e manutenção de históricos escolares e diários de classe beneficiando a secretaria a acadêmica do IFPR Instituto Federal do Paraná. PALAVRAS-CHAVES: Sistemas de Informação, Web, Secretaria Acadêmica

7 1. INTRODUÇÃO Em meados de 1990, o desenvolvimento web se tornou uma das principais indústrias nos Estados Unidos. Esse crescimento foi devido ao interesse mútuo de pessoas e empresas em diferentes ramos de atividades, com isso tornando-se público alvo na Word Wide Web. Quando se fala de desenvolvimento web, podemos estar nos referindo a um e- commerce, desenvolvimento de conteúdo, configurador de segurança de rede ou mesmo um web site. Mas o termo Desenvolvimento Web e muito amplo comparado ao trabalho empregado no processo de desenvolvimento de um web site para Internet ou mesmo Intranet (Rede Privada). Sendo incluído nesse processo não somente a criação de um design, mas o envolvimento também da análise do projeto e engenharia de software adaptadas às necessidades do público alvo observando suas regras de negócio e atuação. A partir de 2005, o custo de desenvolvimento de web site e hospedagem caíram drasticamente devido a inúmeras empresas já atuando na época. Podia-se encontrar desde pequenas empresas de desenvolvimento a amadores e curiosos desenvolvendo o seu próprio site alimentando ainda mais o crescimento e desenvolvimento da indústria de desenvolvimento web. Surgiram então diversas plataformas unificadas e estruturas complexas para web designers e programadores web, oferecendo estruturas amigáveis aos desenvolvedores. Através de ferramentas como estas e softwares livres, entusiastas de desenvolvimento amador web puderam criar com mais rapidez suas aplicações fortalecendo ainda mais a indústria de desenvolvimento. Um exemplo de estruturas como estas são as chamadas IDE (IntegratedDevelopmentEnvironment ou Ambiente de Desenvolvimento Integrado), algumas delas são: NetBeans, LAMP ou estruturas proprietárias como: WebDev, Microsoft Expression Studio, Adobe Flex. Certamente com o domínio dessas ferramentas o desenvolvedor em curto prazo poderá entregar seus projetos com menos tempo, possibilitando a utilização de modernos recursos que serão repassados aos seus clientes e usuários. Uma conseqüência daworldwide Web se tornar potencialmente a maior fonte de informação, podemos dizer também que se tornou a principal plataforma para desenvolvimento web. Utilizando-se de aplicativos complexos e recursos inovados, mantêmse em constante evolução e aliada a ela temos em particular a engenharia web, que centra nas metodologias, técnicas e ferramentas que são a base do desenvolvimento das aplicações absorvendo e suportando suas concepções, desenvolvimentos, evolução e avaliação.

8 Sendo assim fica claro que os Desenvolvimentos de Aplicações Web adotam características que o classificam de forma diferente de um software tradicional, sistemas de informação ou desenvolvimento de aplicativos no computador. 1.1. DEFINIÇÃO DO PROBLEMA O cenário atual demonstra métodos comuns a qualquer instituição de ensino quando nos referimos ao armazenamento das informações. Elas são distribuídas em cadastros, formulários, declarações etc. Tudo é mantido em fichários e armários, garantindo uma preocupação constante na hipótese de extravios e possíveis perdas. Todo o processo de cadastramento de matrículas, lançamento de notas e frequências, manutenção de disciplinas e turmas é inserido manualmente no papel. Tornando atividades que seriam realizadas em minutos em horas de preenchimento, sem contar que ao preencher cada documento o cuidado deve ser constante para não haver rasuras. 1.2. JUSTIFICATIVA E RELEVÃNCIA Contudo o Webacadêmico foi desenvolvido com o propósito de atender as demandas e processos administrativos, garantindo maior organização e segurança em abstrair dados significativos afim de, reunir o máximo de informações ao considerar fatores importantes para tomada de decisões e resposta imediata aos resultados obtidos no decorrer das atividades diárias do campus. Sendo exclusivamente desenvolvido para a ambiente Web, deixando para trás programas executáveis e softwares de instalação local, o Webacadêmico beneficia o profissional para exercício competente de suas atividades a distancia, onde o mesmo poderá consultar e administrar o sistema de qualquer local ou a qualquer hora, oferecendo maior aproveitamento do tempo e rendimento nas atividades melhorando assim o exercício da profissão.

9 1.3. OBJETIVO GERAL O objetivo geral desse trabalho consiste no desenvolvimento de um software documentado, a fim de agilizar os processos e tarefas rotineiras por parte de seus gestores, garantindo uma eficaz segurança ao armazenar e recuperar informações importantes sem levar em conta a preocupação com o sigilo absoluto dos dados e acesso indevido por parte de usuários não autorizados. 1.4. OBJETIVO ESPECÍFICO Este trabalho tem como objetivo, atender as necessidades diárias dos profissionais e usuários autorizados para acessar Sistema para Gestão Acadêmica. Minimizando tarefas de maior complexidade dando um maior aproveitamento e conforto nas rotinas do profissional. O Foco do desenvolvimento de módulos para atividades que ainda não foram sistematizadas alcançando resultados específicos de cada setor acadêmico. Também esta incluso como critério de desenvolvimento a implementação de formulários sistemáticos e relatórios para tomadas de decisões oferecendo de forma clara e rápida as de consultas cadastrais e movimentações periódicas que estão relacionadas às atividades dos alunos. 1.5. DELIMITAÇÃO DO ESTUDO A realização desse trabalho tem como objetivo no desenvolvimento de um software aplicável ao ambiente Web, destinado manipulação das informações pelos gestores da secretaria acadêmica de uma instituição de ensino. O período de desenvolvimento desse trabalho ocorrerá entre o mês de março de 2013 ao mês de fevereiro de 2014.

10 1.6. CONTEXTUALIZAÇÃO DO TRABALHO Uma aplicação acessível na web representa de forma portável e independente de qualquer plataforma o que abrange um maior nível de acessibilidade. Nisso, o usuário cadastrado no sistema conseguirá com fácil acesso, desde que seja autorizado, manipular suas informações ou atualizá-las periodicamente de qualquer lugar que exista um computador conectado e disponível na Internet. Sendo assim, a interação será realizada através de formulários, imagens, mensagens, botões e ícones em páginas HTML. Tornando mais agradável a relação entre sistema e usuário. Como toda gestão acadêmica se regulamenta através de documentos e papeis arquivados. Relatórios cadastrais e relatórios gerenciais facilitarão esse processo de emissão de documentos e tudo que for emitido pode ser restrito a um perfil de usuário e acesso.

11 2. REVISÃO DA LITERATURA 2.1. JAVA Quando se fala em programação Java, muitas pessoas pensam que estamos nos referindo a uma linguagem de programação. Mas além de ser uma linguagem de programação, Java é também uma máquina virtual, APIs e especificações. Nos primórdios da programação, existia a linguagem Assembly. A linguagem assembly são instruções implementadas diretas para o processador. Sendo assim as instruções eram de um para um, ou seja, cada comando nessa linguagem equivale a um comando para o processador executar. Com a evolução da computação começamos a ter linguagens mais robustas de mais alto nível como a linguagem C. Já nesse tipo de linguagem, um comando no código fonte equivale a várias instruções de máquina e juntamente com o compilador, que é o responsável em traduzir o programa em linguagem C para um programa em linguagem de máquina. Essa linguagem de máquina serve para um processador específico. No entanto, se um programa foi descrito para um processador, ele não poderá ser executado em outro processador diferente. Encarregam-se também os sistemas operacionais de montar o executável de acordo com seu tipo através de suas instruções. Por isso um programa compilado para Windows não roda no Linux, e vice versa. Chamamos então essas instruções para o sistema operacional de código nativo. Diferente da linguagem C, o programa compilado em Java não se resulta em um código nativo. Quando compilamos um arquivo.java (que é extensão de um programa Java, assim como.c é a extensão de um programa em C) geramos um código intermediário, chamando bytecode que fica em um arquivo.class. Um arquivo.java depois de compilado se torna um.class. À partir daí o.class conterá instruções chamadas de bytecodes. Esses bytecodes são códigos intermediários que não serão executados pelo sistema operacional, pois não é um código nativo.

12 2.2. MÁQUINA VIRTUAL Como os bytecodes não servem para ser executados por nenhum sistema operacional, precisamos de um programa que realize esta tarefa. Que leia cada bytecode e traduza para o código nativo, esse programa chama-se máquina virtual. Mais conhecida como JVM(Java Virtual Machine). A máquina virtual é um programa, e cada sistema operacional existe uma máquina virtual especifica pra ele. Logo, existe uma máquina virtual para Windows que traduzirá os bytecodes para códigos nativos de Windows, outra máquina virtual para Linux que traduzirá os bytecodes para código nativos Linux. 2.3. TOMCAT O software Tomcat, desenvolvido pela Fundação Apache, permite a execução de aplicações desenvolvidas para web. Sua principal característica técnica é estar ligada na linguagem de programação Java, mais especificamente nas tecnologias de Servlets e de Java Server Pages (JSP). Esta abordagem se contrapõe, por exemplo, com a utilizada pela Microsoft com o ASP (baseada na linguagem Visual Basic). A Fundação Apache, mais conhecida pelo seu servidor web de mesmo nome, permite, como no caso do servidor Apache, que o Tomcat seja usado livremente, sendo para fins comerciais ou não. Por estar escrito em Java, o Tomcat necessita que a versão Java 2StantdardEdition (J2SE) esteja instalada no mesmo computador onde ele será executado. Sendo assim, não basta ter a versão runtime de Java instalada, pois o Tomcat necessita compilar (e não apenas executar) programas escritos em Java. O Tomcat é um subprojeto do projeto inicial Jakarta da Fundação Apache, o qual tornou-se o seu representante mais ilustre e tem como objetivo o desenvolvimento de soluções de código aberto baseadas na plataforma Java.[2]

13 2.4. JAVA SERVER FACES Java Server Faces (JSF) é uma especificação técnica do Java CommunityProgress (JCP), publicada em 2004, com o objetivo de padronizar um framework para desenvolvimento da camada de apresentação em aplicações. Esta especificação busca maximizar a produtividade no desenvolvimento de aplicações web, minimizar a complexidade de manutenção, evoluir a experiência do usuário com uso de técnicas AJAX, proporcionar melhor integração com outras tecnologias web. Oferece também infra estrutura para criação de componentes interativos integrados a todas as soluções oferecidas pela especificação, por exemplo: conversores, validadores, eventos, vinculo a dados e a métodos.[1] JSF já e o framework Java mais usado para desenvolvimento de aplicações web com Java. Seu conjunto de funcionalidades faz com que esta tecnologia seja favorita no cenário de desenvolvimento em que esta inserida. Isto se deve a vários motivos: E uma especificação que faz parte da EnterpriseEdition desde a versão 5; E um framework cuja API também foi pensada para os desenvolvedores IDEs (Eclipse, NetBeans, JDeveloper,...) não somente para os desenvolvedores de aplicação; Possui uma comunidade bastante ativa em fóruns e no IRC; Exige pouco conhecimento inicial para construção de interfaces de usuários tradicionais, como consultas baseadas em listas e cadastros; Possibilidade de empresas investirem no desenvolvimento de componentes para tal framework. Esses componentes são recursos adicionais aos padrões definidos pela especificação. Algumas bibliotecas de componentes mais populares são: RichFaces da JBoss, ICEFaces da ICESoft e PrimeFaces [3]. Aplicações web precisam: converter e validar dados, integras com o banco de dados ou outra forma de persistência, oferecer mecanismos de segurança, internacionalização, localização, acessibilidade, suporte a css, suporte a criação e uso de templates, entre muitas outras funcionalidades. Frameworks que oferecem estas soluções tornam as tarefas do desenvolvedor mais simples e as tarefas do usuário mais fáceis de realizar.

14 A funcionalidade fornecida por uma aplicação JavaServer Faces é semelhante ao de qualquer outra aplicação web Java. Uma aplicação típica JavaServer Faces inclui as seguintes partes : Um conjunto de páginas da web em que os componentes são definidos; Um conjunto de tags para adicionar componentes a página web; Um conjunto de beansgerenciados, que são leves objetos gerenciados por recipiente ( POJOs ) com requisitos mínimos. Eles apóiam um pequeno conjunto de serviços básicos, como a injeção de recursos, retornos de chamada do ciclo de vida e interceptores; Um descritor de implementação da Web ( arquivo web.xml ); Opcionalmente, um ou mais arquivos do aplicativo de configuração de recursos, como um arquivo faces-config.xml, que pode ser usado para definir as regras de navegação de página e configurar beans e outros objetos personalizados. Opcionalmente, também podemos implementar um conjunto de objetos personalizados, que podem incluir componentes, validadores, conversores, ou listeners. A Figura 4-1 mostra a interação entre cliente e servidor em uma aplicação típica JavaServer Faces. Em resposta a um pedido do cliente, uma página web é processado pelo container web que implementa a tecnologia JavaServer Faces. Figura 1-Respondendo a uma solicitação de cliente para uma página JSP

15 O diagrama mostra um navegador acessando a página myfacelet.xhtml usando uma solicitação HTTP e o servidor retornou o código HTML usando uma resposta HTTP. A página web, myfacelet.xhtml, é construído usando JavaServer Faces tags de componentes. Tags de componentes são usados para adicionar componentes a view( representado por myui no diagrama), que é a representação do lado do servidor da página. Em adição aos componentes, a página da web pode também fazer referência a objetos, tais como os seguintes: Algum evento Listener, ou seja, validadores e conversores que estão registrados nos componentes; Os componentes JavaBeans que capturam os dados e processam a funcionalidade específica da aplicação dos componentes; A solicitação do cliente pela view é processada como uma resposta que será renderizada pelo lado do servidor e depois mostrado através de arquivos HTML ou XHTML, no navegador do cliente. como: Java Server Faces 2.0 inclui a tecnologia Facelets, oferecendo algumas vantagens O código pode ser reutilizado por componentes através de templates e recursos compostos de componentes; A utilização de JSF, nos permite registrar automaticamente o bean gerenciado como recurso disponível para aplicação, além das regras de navegação que permitem o desenvolvedor configurar rapidamente a navegação de pagina reduzindo os processos manuais para a aplicação; Como um dos fatores mais importantes do JSF, esta na sua rica arquitetura para gerenciamento do estado do componente, facilitando as validações de entradas do usuário e a manipulação de eventos.

16 2.5. HIBERNATE O Hibernate foi iniciado em 2001 por Gavin King como uma alternativa ao uso de beans de entidade de estilo EJB2. Sua missão na época era simplesmente oferecer melhores capacidades de persistência que o oferecido por EJB2 simplificando as complexidades e permitindo características faltantes. No inicio de 2003, a equipe de desenvolvimento do Hibernate lançou 2 atualizações que ofereceram muitas melhorias significativas em relação ao primeiro lançamento, o que alavancou o Hibernate como padrão de fato para a persistência em Java.[4] O conceito de orientação a objetos tem se difundido cada vez mais nos dias atuais, sendo assim, dados são manipulados no formato de objetos, porém serão persistidos em banco de dados relacionais. E para resolver os problemas de mapeamento objeto/relaciona (MOR), como alternativa o Hibernate se destaca nessa etapa de desenvolvimento. O Hibernate é um framework para mapeamento objeto/relacional em Java, que abstrai o código SQL da aplicação, nos permitindo modificar a base de dados para outro SGDB(Sistema Gerenciador de Banco de Dados), sem alterar nenhuma linha de código Java. O Hibernate em diversos fatores tornou-se a solução para poupar tempo em muitas etapas de desenvolvimento por reduzir grandemente a quantidade de linhas de codificação beneficiando o tempo de desenvolvimento entre outras qualidades. Por utilizar POJO (PlainOld Java Objects), possibilita a herança e o reaproveitamento desses para outras aplicações. Suportando relações entre si. E nissohavendo uma pequena sobrecarga no desempenho enquanto ele inicia e processa seus arquivos de configuração, mesmo assim torna-se uma ferramenta rápida. Qualquer objeto a ser mantido em uma base de dados é candidato a persistência com Hibernate. Portanto, ele torna-se uma ótima alternativa para aplicações ad hoc, onde aplicações desenvolvidas especialmente para uma determinada área devem respeitar o prazo de entrega e o custo beneficio. Se comparando com a codificação manual e SQL, o Hibernate é capaz dediminuir 95% das tarefas relacionadas a persistência.

Sendo assim a principal vantagem do Hibernate é a mudança de paradigma estruturado para a orientação a objetos, eliminando o trabalho repetitivo e tedioso. 17 Figura 2-Mapeamento Objeto Relacional O Hibernate oferece ao desenvolvedor a opção de criar mapeamentos entre os modelos de base de dados e modelos de objetos através de arquivos XML separados ou ainda através de anotações no código fonte dos objetos POJO. Entre algumas situações que normalmente evitamos utilizar anotações em nossos códigos é quando estivemos migrando do Hibernate2 ou de um ambiente Hibernate 3 utilizando arquivos XML. Nesse caso não iremos ter o esforço de anotarmos novamente nossos mapeamentos. Ou então, se estivermos migrando de ambientes legados, não iremos ter o esforço para alterar códigos-fontes preexistentes, isso poderia causar bugs nos códigos já existentes e que estão funcionando. Outra situação é quando não temos os códigos-fontes dos nossos POJOs porque ou eles foram perdidos ou gerados através de uma ferramenta automática, assim iremos preferir utilizar arquivos XML externos ao invés de decompilar nossas classes. Além disso, manter as informações como um arquivo externo possibilita alterarmos o esquema da base de dados ou informações de mapeamento sem reconstruir a aplicação como um todo. Sendo assim, temos algumas vantagens em utilizar anotações. A

18 primeira vantagem é que temos um código mais intuitivo do que arquivos baseados em XML. Anotações também são menos detalhadas do que arquivos XML equivalentes. O exemplo da Listagem 1 mostra um código com anotações e na Listagem 2 o mesmo mapeamento, porém utilizando um arquivo XML.

19 3. TECNOLOGIAS ADOTADAS 3.1. CONFIGURAÇÃO DO CONTROLADOR JSF Seguindo o padrão MVC (Model-View-Controller), é preciso configurar o servlet do JSF no arquivo web.xml da aplicação que representa o controller dentro do modelo MVC. Esse servlet é responsável em receber as requisições e delegá-las ao core do JSF. Para configurá-lo basta adicionar as seguintes configurações no web.xml: <servlet> <servlet-name>facesservlet</servlet-name> <servlet-class>javax.faces.webapp.facesservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>facesservlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> Ao usar o NetBeans versão 7.4, esta configuração é feita automaticamente. 3.2. FACES-CONFIG.XML O arquivo faces-config.xml é o arquivo principal de configuração de uma aplicação JSF. Localizado no diretório WEB-INF da aplicação e no formato XML, ele é o responsável por descrever os elementos e sub-elementos que compõem o projeto, tais como as regras de navegação, os beans gerenciados, configurações de inicialização, entre outros. Segue abaixo a estrutura do arquivo faces-config.xml: <?xmlversion="1.0"?> <faces-configxmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2">... outros elementos vão aqui </faces-config> Podemos observar que o elemento principal do arquivo XML é <facesconfig></faces-config>.

20 Dentro do corpo do elemento <faces-config>, outros elementos de nível mais alto podem ser incluídos em qualquer ordem, ainda que seja uma boa idéia ordená-los de acordo com suas funcionalidades. A versão do faces-config.xml apresenta a validação dos elementos XML fornecida pelo XML SchemaDefinition (XSD), recomendação oficial do W3C desde 2001 para validação de documentos XML. 3.3. MAPEAMENTO OBJETO RELACIONAL Figura 3-Mapeamento usando anotações O mapeamento objeto relacional ou ORM, do inglês (Object-relacional mapping) é uma técnica de desenvolvimento utilizada pelos programadores para reduzir a impedância da programação orientada aos objetos utilizando banco de dados relacionais. As classes entidades representam as tabelas no banco de dados e os registros de cada tabela são representados como instancias das classes que as correspondem. Através dessa técnica o programador não precisa se preocupar com os comandos ou sintaxes SQL, utilizando uma programação simples para realizar todo trabalho de persistência. Também não há a necessidade da correspondência entre campos tabelas e atributos classes, dando ao programador total liberdade para inserir seus padrões e nomenclaturas.

21 3.4. ANOTAÇÕES JPA 2 Quando estamos utilizando anotações usamos as nossas classes Java e anotamos o código fonte dessa classe através das anotações da JPA. Após isso, o Java RuntimeEnvironment (JRE) analisa essas anotações. OHibernate usa Java reflection para ler as anotações e aplicar as informações de mapeamento. Se quisermos que o Hibernate gerasse o esquema da base de dados, devemos primeiro compilar as classes contendo essas anotações. Abaixo veremos a anotação Entity que permite anotar uma classe como persistente e anotação Entity que permite anotar uma classe como persistente e anotações para declaração de chavesprimárias. 3.4.1. ANOTAÇÃO@ENTITYY: A anotação Entity encontra-se no pacote javax.persistence, assim como as anotações padrão da JPA. Essa anotação @Entity marca a classe como sendo um bean de entidade (entitybean), portanto ela deve possuir um construtor sem argumentos que é visível ao menos com um escopo protegido (protected). O Hibernate suporta o escopo de pacote (packagescope) como o escopo mínimo suportado, mas vale salientar que perdemos portabilidade com outros containers. Outras regras do JPA 2 que devemos saber é que a classe anotada com @Entity não deve ser final e a classe que deve ser concreta. 3.4.2. ANOTAÇÃO@IDE@GENERATEDVALUE: Cada bean de entidade necessita ter uma chave-primária, na qual será anotada na classe com @Id. Tipicamente a chave-primária será um campo único, apesar de que ela também pode ser composta por múltiplos campos. A utilização da anotação @Id determina a estratégia de acesso padrão que o Hibernate usará para o mapeamento. Na Listagem 4 temos a utilização do @Id numa classe Pessoa como exemplo: Figura 4-Anotações

22 Por padrão, a anotação @Id determinará automaticamente a estratégia de geração da chave primaria mais apropriada, mas podemos sobrescrever isto aplicando a anotação @GeneratedValue. Esta anotação exige um par de atributos: strategy e generator. O atributo strategy deve ser um valor da enumeração javax.persistence.generatortype. Se não especificarmos o tipo do gerador, o default será AUTO. Existem quatro diferentes tipos de geradores de chaveprimária no GerenatorType, são eles: AUTO, onde o Hibernate decide o tipo do gerador a usar, baseado no suporte da base de dados para geração de chave-primárias; IDENTITY, onde a base de dados é responsável por determinar a próxima chave-primária; SEQUENCE, onde algumas bases de dados suportam um tipo de coluna SEQUENCE; TABLE, na qual este tipo mantém uma tabela separa com os valores das chaves primárias. 3.5. HERANÇA O Hibernate fornece vários mecanismos de se realizar o mapeamento de uma relação de herança, são elas: TABLE_PER_CLASS, ou Tabela por classe concreta: cada classe concreta é mapeada para uma tabela diferente no banco de dados. Em cada classe são definidas colunas para todas as propriedades da classe, inclusive as propriedades herdades; JOINED, ou Tabela por Hierarquia: todas as classes são mapeadas em um única tabela; SINGLE_TABLE, ou tabela por sub-classe: mapeia cada tabela, inclusive a classe pai.

23 Nessa aplicação utilizamos a hierarquia JOINED, sendo assim as tabelas filhas contêm apenas colunas que não são herdadas e suas chaves primarias são também chaves estrangeiras para a tabela mãe. O código fonte abaixo apresenta o mapeamento da superclasse Pessoa, onde a estratégia de mapeamento da herança é definida como JOINED, através da anotação Inheritance(strategy=InheritanceType.JOINED). O motivo em optar por esta configuração está relacionado ao aproveitamento de atributos e métodos da superclasse, que contem elementos comuns a algumas classes, que se não fosse o recurso implementado, haveria uso repetitivo de codificação e características redundantes tornando o código fora do contexto orientado a objeto. 3.6. BANCO DE DADOS MYSQL O MySql é um Sistema Gerenciador de Banco de Dados (SGBD) relacional que utiliza a linguagem padrão SQL.O MySQL é um SGBD já consolidado sendo um dos mais populares SGBDs com código-fonte aberto. O MySQL á uma opção interessante, pois mesmo possuindo uma tecnologia complexa de um banco de dados, seu custo não é elevado. Atualmente, é executado em mais de 20 plataformas incluindo Linux, Windows, Mac Os e IBM, oferecendo uma grande flexibilidade. Destaca-se por suas características de desempenho, escalabilidade e confiabilidade, fazendo com que seja adotado por departamentos de Tecnologia da Informação (TI), desenvolvedores Web e fornecedores de pacotes de softwares.

24 4. DESCRIÇÃO DO SISTEMA 4.1. DIAGRAMA DE CASO DE USO Figura 5-Diagrama de Caso de Uso No diagrama de caso de uso apresentado conforme a figura 1, possui 3 (três) atores. O ator secretaria é responsável por realizar a maioria dos processos cadastrais. Realizado a manutenção nas Turmas, Alunos Disciplinas e Professores. O processo de manutenção se refere a alteração de registros caso aja algum motivo para atualização, além de poderem incluir, consultar ou mesmo excluir algum registro desde que possua permissão de acesso para devidas operações. Mediante a manutenção dessas informações é preciso também observar algumas métricas para que isso seja feito. Como vemos na figura 1, o ator Secretaria tem a obrigação de informar o número SIAPE do professor ao estar realizando o cadastramento dele. Isso porque nenhum professor pode estar registrado no sistema sem esse número de identificação. A outra situação esta relacionada na opção de informar ou não uma Turma ao aluno. Porque nem sempre o aluno previamente cadastrado no sistema, pode estar incluso obrigatoriamente a uma turma.

25 Já o ator Professor possui um nível de acesso e permissões diferenciado no sistema. No entanto podemos dizer que o Professor tem o direito de decidir ou manipular informações que nenhum outro poderá realizar por ele. Ou seja, atualizar diários, lançar frequências dos alunos mediante as suas faltas ou presenças e lançar as notas correspondente a cada aluno e bimestre são responsabilidades competentes somente ao professor. Se diferenciando totalmente do ator Aluno, que possui o nível mais restrito das operações, podendo apenas visualizar as suas frequências e notas lançadas pelo professor mediante a uma senha de acesso e utilização também cadastrada previamente no sistema. Conforme podemos ver na figura 1, o ator Professor herda as demais funcionalidades do ator Aluno, o que permite ao professor além de realizar suas operações também poder realizar todas as operações que o aluno. Sendo assim, podemos verificar que os principais requisitos funcionais e não funcionais estão claramente dispostos, dando uma visão global da utilização do sistema e quais são os papeis atuantes de cada ator. 4.2. DIAGRAMA DE CLASSE Figura 6-Diagrama de Classes

26 4.3. DESCRIÇÃO DAS CLASSES Classe Cidade: A classe Cidade é uma Classe Entidade que se tornará uma tabela no banco de dados. Onde serão armazenadas todas as cidades cadastradas no sistema. Ela também está relacionada a outra classe denominada Pessoa, inserindo obrigatoriamente uma chave secundaria idcidade em cada registro dessa ultima tabela. Classe Turma: A classe Turma é uma Classe Entidade que se tornará uma tabela no banco de dados. Onde serão armazenados todas as turmas cadastradas no sistema. Ela também está relacionada outras duas classes denominadas Aluno e Diario, inserindo obrigatoriamente um objeto tipo turma com o atributo idturma em cada uma dessas classes. Classe Disciplina: A classe Disciplina é uma Classe Entidade que se tornará uma tabela no banco de dados. Sendo armazenadas todas as disciplinas cadastradas no sistema. Ela esta relacionada a outras duas classes, classe Frequencia e classe Diario. Em cada uma dessas classes serão inseridas o atributo iddisciplina da classe Disciplina indicando um relacionamento entre elas. Classe Bimestre: A classe Bimestre possui semelhante relacionamento a classe Disciplina. Ela também esta relacionada a classes entidades, Frequencia e Diario. Inserindo em cada uma delas o atributo idbimestre da classe Bimestre indicando um relacionamento entre elas. Classe Diario: Esta classe é responsável pela criação diários de turma. Cada diário de turma está relacionado ao bimestre e a disciplina. Através dessa classe, objetos serão persistidos. Cada objeto persistido além de estar composto por seus próprios atributos, também está relacionado a classe Bimestre e a classe Disciplina. Formando um registro com dois relacionamentos no banco de dados. Classe Aluno: A classe Aluno é uma classe filha que além de ter seus atributos próprios também herdará todos os atributos da classe pai denominada Pessoa. Através dela será formada a tabela aluno no banco de dados e seus os objetos persistidos se relacionam com a classe Cidade. Classe Professor: Assim como a classe Aluno, a classe Professor também é uma classe filha e além de ter seus próprios atributos herdará todos os atributos da classe pai, Pessoa. Através dela também será formada a tabela professores no banco de dados.

27 Classe Pessoa: a classe Pessoa não é uma classe entidade, ou seja, não se tornará uma tabela no banco de dados. Porém seus atributos serão herdados para a classe Professor e Aluno com seus atributos específicos compondo aos atributos comuns de cada classe. 4.4. FUNCIONALIDADES DO SISTEMA Tela Principal Conforme representado na figura abaixo a tela principal do sistema é constituída pelos menus de cadastramento, gerenciamento e relatórios. Através dela, todos os módulos do sistema serão iniciados e acessados. Figura 7-Tela principal do sistema Cadastro Disciplina Através do menu Cadastrar - >Disciplinas conforme a figura 5, é possível acessar o formulário contendo todas as disciplinas registradas no sistemas conforme a figura X. A tela Lista de Disciplinas demonstra a relação de todas as disciplinas cadastradas no sistema representado pelos campos: código, nome da disciplina, carga horária e as ações que o usuário deseja escolher como Alteração e Exclusão do registro. Formulário Inclusão de Disciplinas Conforme as figuras no ANEXO A, através do formulário Listas de Disciplinas temos o botão Novo com o título nele Incluir Nova Disciplina. Ele abrirá um novo formulário que será incluso novos registros na lista conforme a ANEXO A. Nesse mesmo formulário Lista de Disciplinas, podemos também

alterar ou excluir. A orientação entre inclusão e alteração é enviada pelo botão escolhido na frente de cada registro. 28 Formulário Alteração de Disciplinas Conforme ANEXO A, através do botão Alterar Disciplina, é possível atualizar os dados utilizando a mesma Tela de Inclusão de Disciplinas, porém as informações ao invés de serem incluídas novamente serão apenas alteradas. Formulário Exclusão de Disciplina Conforme ANEXO A, ao optarmos pelo botão Excluir Disciplinas é possível excluir permanentemente o registro selecionado conforme a linha representada pelo botão. Sendo assim, depois de selecionado, a informação não mais poderá ser recuperada. Formulário Incluir Turmas - No botão Novo com o título nele, Incluir Nova Turma. Ele abrirá um novo formulário que será incluso novos registros na lista. Nesse mesmo formulário Lista de Turmas, podemos também Alterarou Excluir. A orientação entre inclusão e alteração é enviada pelo botão escolhido na frente de cada registro. Formulário Alteração de Turmas A através do botão Alterar Turma, é possível atualizar os dados utilizando a mesma Tela de Inclusão de Turmas, porém as informações ao invés de serem incluídas novamente serão apenas alteradas. Formulário Exclusão de Turmas Ao optarmos pelo botão Excluir Turma é possível excluir permanentemente o registro selecionado conforme a linha representada pelo botão. Sendo assim, depois de selecionado, a informação não mais poderá ser recuperada. Formulário Incluir Bimestres - Através do formulário Lista de Bimestres tem o botão Novo com o título nele Incluir Novo Bimestre. Ele abrirá um novo formulário que será incluso novos registros na lista. Nesse mesmo formulário Lista de Bimestres, podemos também Alterar ou Excluir. A orientação entre inclusão e alteração é enviada pelo botão escolhido na frente de cada registro.

29 Formulário Alteração de Bimestres Atravésdo botão Alterar Bimestre, é possível atualizar os dados utilizando a mesma Tela de Inclusão de Bimestres, porém as informações ao invés de serem incluídas novamente serão apenas alteradas. Formulário Exclusão de Bimestre A optarmos pelo botão Excluir Turma é possível excluir permanentemente o registro selecionado conforme a linha representada pelo botão com o ícone Lixeira. Sendo assim, depois de selecionado, a informação não mais poderá ser recuperada. Formulário Incluir Aluno - Noformulário Lista de Alunos temos o botão Novo com o título nele, Incluir Novo Aluno. Ele abrirá um novo formulário que poderão ser inclusos novos registros na lista. Nesse mesmo formulário Lista de Alunos, podemos também Alterar ou Excluir qualquer registro apenas clicando nos respectivos ícones na mesma linha de dados. A orientação entre inclusão ou alteração será enviada pelo botão escolhido. Formulário Alteração de Alunos Atravésdo botão Alterar Alunos, é possível atualizar os dados utilizando a mesma Tela de Inclusão de Alunos, porém as informações ao invés de serem incluídas novamente serão apenas alteradas. Formulário Exclusão de Alunos Conforme a figura abaixo, ao optarmos pelo botão Excluir Aluno, é possível excluir permanentemente o registro selecionado conforme o mesmo botão correspondente a linha representada pelo ícone Lixeira. Sendo assim, depois de selecionado, a informação não mais poderá ser recuperada. Formulário de Alteração Aluno / Turma Este formulário consiste na alteração da turma relacionada ao aluno, conforme necessidade de mudança pela secretaria acadêmica. Sendo assim, se aplica também as mudanças provenientes da aprovação anual ou semestral, mediante a modalidade do curso. E ainda no formulário, é possível consultar todos os alunos de uma turma ou mesmo unicamente um aluno ou alunos, seguindo na ordem alfabética. Formulário Inclusão Diário Frequência Este formulário lista todos os alunos que foram registrados nos diários de frequência. Todo aluno matriculado na instituição deve ser manualmente inserido apontando sua disciplina, quantidade de aulas dia e bimestre relacionado a ela. Sendo assim essa tela mostra todos os alunos que já estão inclusos no diário. Sendo impossível consultar as suas frequências sem estar incluso neste.

30 Formulário Atualização de Frequências Este formulário permite ao professor executar em tempo real a atualização do diário de frequências. Ou seja, tudo que era lançado manualmente na folha e armazenados em livros de frequência, aqui tudo pode ser feito em apenas alguns clicks. Figura 8-Formulário atualização de frequência Conforme a figura 9, podermos observar na parte superior um calendário. Nele o professor deverá selecionar a data correta para iniciar a atualização e no lado superior direito também deverá selecionar a Disciplina, Bimestre e Turma. Logo após configurado, é só clicar no botão Pesquisar Alunos, onde todos os alunos relacionados a este perfil aparecerá no acordion inferior. Vale a pena observar outro detalhe importante, que está ligada as regras de negócio envolvidas, o que condicionou ao seguinte caso: Para que os alunos sejam visualizados, é necessário ele estar cadastrado em alguma Turma; Cada bimestre possui um intervalo de datas, e somente aparecerão os alunos cadastrados naquele bimestre ou bimestre que também estão ligados a uma disciplina; Na grade inferior, aparecerão os alunos seguidos de uma caixa de marcação, e que selecionada estará informando a presença do aluno.

31 Relatório Diário de Frequências Este relatório envolve um componente específico denominado Cross-Tab ou (Tabela de Referencia Cruzada). Para construção desse relatório ouve a necessidade de várias tabelas, trazendo apenas o resumo das informações de maior importância. Todos os dados coletados no sistema servirão de apoio formando o diário de frequência de alunos. Figura 9-Relatório diário de frequências

32 5. CONCLUSÃO Diante das tecnologias utilizadas para realizar este trabalho foi possível chegar a uma conclusão que o framework poupa o processo repetitivo de desenvolvimento atribuindo mais tempo e atenção ao desempenho das tarefas mais complexas que envolvem regras de negócios e métodos especiais. O desenvolvimento nas três camadas MVC (Modelo, Visão, Controle), facilita a manutenção e a localização rápida arquivos. Dando ao desenvolvedor um ambiente mais claro e objetivo de implementação no decorrer das atividades. Sem dizer que cada camada foi atribuída as convenções de código Java, que envolvem as formas sintáticas no desenvolvimento melhorando o entendimento do código fonte por parte de outros programadores. A utilização da bibliotecas de componentes como o Primefaces, deu a aplicação uma apresentação HTML melhorada e rica em efeitos, poupando a necessidade de um especialista em webdesing. No entanto, por se tratar de uma biblioteca ainda muito recente, foram encontrados alguns bugs em seus eventos,havendo a necessidade de tratamento visual com CSS e Javascrip em algumas páginas desenvolvidas.

33 6. REFERENCIAS BIBLIOGRÁFICAS [1] Artigo Java Magazine 78 JSF 2.0 [2] Portal Java [3] LUCKOW, D. H.; MELO A. A. Programação Java para Web, São Paulo: Novatec, 2010 [4] HIBERNATE, Pesquisa sobre a história do Hibernate. Disponível em <http://www.hibernate.org/about/history. Acessado em 27/09/13> [5]Hibernate - JBossCommunity, disponível em www.hibernate.org/ [6]Documentação de Referência Hibernate, disponívelem https://docs.jboss.org/hibernate/core/3.6/reference/pt- BR/html/index.htmlhttp://www.hibernate.org/hib_docs/v3/reference/en/html/queryhql.html [7] Introdução ao Hibernate, disponível em http://hibernate.javabeat.net/articles/2007/05/hibernate-orm-framework-introduction/ [8] MySQL Customers why-mysql: Disponível em: <http://www.mysql.com/customers/ - http://www.mysql.com/why-mysql/ >,Acesso em: 09, Fev, 2014

34 APÊNDICE A Nesse apêndice serão apresentadas algumas telas do sistema demonstrando como inserir, excluir e consultar informações através dos formulários. Menu Disciplinas Formulário Lista de Disciplinas Botão Incluir Nova Disciplina Formulário Inclusão de Disciplina Botão Alterar Disciplinas Formulário Alterar Disciplina