UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RELATÓRIO DE ESTÁGIO SUPERVISIONADO DESENVOLVIMENTO DE UM CONTROLE ACADÊMICO PARA O HOSPITAL UNIVERSITÁRIO JÚLIO MÜLLER EDINEY DOS SANTOS LOPES CUIABÁ MT 2016

2 UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RELATÓRIO DE ESTÁGIO SUPERVISIONADO DESENVOLVIMENTO DE UM CONTROLE ACADÊMICO PARA O HOSPITAL UNIVERSITÁRIO JÚLIO MÜLLER EDINEY DOS SANTOS LOPES Relatório apresentado ao Instituto de Computação da Universidade Federal de Mato Grosso, para obtenção do título de Bacharel em Ciência da Computação. CUIABÁ MT 2016

3 UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO EDINEY DOS SANTOS LOPES Relatório de Estágio Supervisionado apresentado à Coordenação do Curso de Ciência da Computação como uma das exigências para obtenção do título de Bacharel em Ciência da Computação da Universidade Federal de Mato Grosso Aprovado por: Prof. Dr. Raphael de Souza Rosa Gomes Instituto de Computação (ORIENTADOR) Prof. Dr. Thiago Meirelles Ventura Instituto de Computação (CONVIDADO) Leonardo Luiz Braun HUJM/SGPTI (SUPERVISOR)

4 DEDICATÓRIA A Deus, pois dele emana toda a sabedoria. À minha esposa Sinei, companheira fiel. À minha filha Vanessa, razão da minha vida. À minha mãe, Fátima, meu porto seguro.

5 AGRADECIMENTOS Agradeço primeiramente a Deus, pois sozinho não teria concluído esse trabalho. Vinde a mim todos os que estais cansados e sobrecarregados e eu vos aliviarei (Mateus 11:28-30). Agradeço também à minha família pelo apoio e incentivo. Agradeço aos professores do Instituto de Computação, por terem sido fundamentais na minha vida acadêmica. Agradeço especialmente os professores Maurício Pereira e Nelcileno Araújo por me ajudarem quando precisei recorrer à Coordenação do Curso. Agradeço ao meu orientador professor Raphael de Souza Gomes por me orientar e instruir com paciência, sendo decisivo para a realização deste trabalho. Agradeço a todos da equipe da SGPTI do Hospital Júlio Müller, cujo companheirismo enriqueceu minha formação profissional. Agradeço em especial ao meu supervisor de estágio Leonardo Braun, um exemplo do que é ser um líder de um grande time de profissionais. Agradeço aos amigos que fiz no Instituto de Computação, companheiros que levarei por toda minha vida.

6 SUMÁRIO LISTA DE FIGURAS....8 LISTA DE TABELAS... 9 LISTA DE SIGLAS E ABREVIATURAS RESUMO INTRODUÇÃO REVISÃO DE LITERATURA VISÃO GERAL DAS TECNOLOGIAS E APLICAÇÕES DE CAMADA ÚNICA APLICAÇÕES DE DUAS CAMADAS APLICAÇÕES MULTI-CAMADAS: WEB O PADRÃO MVC JAVA SERVLET JAVASERVER FACES MAPEAMENTO OBJETO RELACIONAL JPA E HIBERNATE MATERIAS, TÉCNICAS E MÉTODOS APACHE MAVEN FACELETS PAGES VIEWS MANAGED BEANS DOMAIN MODEL PERSISTÊNCIA RESULTADOS CONFIGURAÇÕES DOS ARQUIVOS WEB.XML E FACES-CONFIG.XML ESTRUTURA DA APLICAÇÃO O ARQUIVO POM.XML AS CLASSES MODEL E OS PACOTES AUXILIARES CONVERTERS EXCEPTIONS FILTERS REPOSITORY SERVICE UTIL VALIDATORS VIEWS

7 SUMÁRIO 4. DIFICULDADES ENCONTRADAS PADRÃO DO PROJETO FACELETS E SERVLETS JAVASERVER FACES + PRIMEFACES MANAGED BEANS CLASSES DAO PERSISTÊNCIA VIEWS CONCLUSÕES REFERÊNCIAS BIBLIOGRÁFICAS APÊNDICES APÊNDICE 1. CLASSE ALUNOBEAN APÊNDICE 2. ENTIDADE ALUNO APÊNDICE 3. ENTIDADE PESSOA (PARTE 1) APÊNDICE 4. ENTIDADE PESSOA (PARTE 2) APÊNDICE 5. ENTIDADE PESSOA (PARTE 3) APÊNDICE 6. ENTIDADE PESSOA (PARTE FINAL) APÊNDICE 7. GENERICDAO APÊNDICE 8. CLASSE ALUNOCONVERTER APÊNDICE 9. CLASSE ALUNOFILTER APÊNDICE 10. CLASSE ALUNOREPOSITORY APÊNDICE 11. CLASSES ALUNOSERVICE E ALUNOSERVICEIMPL APÊNDICE 12. HIBERNATEUTIL

8 LISTA DE FIGURAS Figura 1 Arquitetura 1-tier (camada única) Figura 2 Arquitetura 2-tier (duas camadas) Figura 3 Arquitetura J2EE (multi-camadas) Figura 4 Padrão MVC Figura 5 Arquitetura JSF (MVC2) Figura 6 Ciclo de Vida JSF Figura 7 Diagrama de atividades (CRUD Aluno) Figura 8 Estrutura inicial do projeto acadêmico Figura 9 Arquivo listadeestados.xhtml Figura 10 Tela gerada do arquivo listadeestados.xhtml Figura 11 Arquivo persistence.xml Figura 12 Arquivo web.xml Figura 13 Arquivo faces-config.xml Figura 14 Relação de pacotes do projeto academico Figura 15 Relação das pastas de visões do projeto academico Figura 16 As dependências da Apache Figura 17 As dependências do Hibernate Figura 18 As dependências Javax Figura 19 As dependências OmniFaces, PostgreSQL, PrettyFaces, PrimeFaces Figura 20 As dependências Spring e o Build Figura 21 AlunoDAO Figura 22 Pacote Converter Figura 23 Pacotes Exceptions e Filters Figura 24 Pacotes Repository e Service Figura 25 Pacote Util Figura 26 Tela cadastrodecursos.jsf Figura 27 Tela listadeturmas.jsf Figura 28 Tela cadastrodealunos.jsf Figura 29 Tela cadastrodealunos.jsf após clique no botão Foto

9 LISTA DE TABELAS Tabela 1 O padrão modelo-visão-controlador (MVC) Tabela 2 Controle Facelets Page e Template Tags

10 LISTA DE SIGLAS E ABREVIATURAS API CSS HUJM HTTP IDE J2EE Application Programming Interface (Interface de Programação de Aplicação) Cascading Style Sheets (Linguagem de Folhas de Estilo) Hospital Universitário Júlio Müller Hypertext Transfer Protocol (Protocolo de Transferência de Hipertexto) Integrated Development Environment (Ambiente de Desenvolvimento Integrado) Java 2 Platform, Enterprise Edition (Plataforma Edição Empresarial) Java EE Java Enterprise Edition (Java Edição Empresarial) JPA JSF JSP MVC ORM POJO SGPTI XML Java Persistence API JavaServer Faces JavaServer Pages Model-View-Controller (Modelo-Visão-Controlador) Object-Relational Mapping (Mapeamento Objeto Relacional) Plain Old Java Objects (Velhos e Simples Objetos Java) Setor de Gestão de Processos e Tecnologia da Informação extensible Markup Language (Linguagem de Marcação Extensível) 10

11 RESUMO Este trabalho apresenta o desenvolvimento do Controle Acadêmico HUJM, um sistema que será integrado ao Framework Class, do Setor de Gestão de Processos e Tecnologia da Informação (SGPTI) do Hospital Universitário Julio Müller e que tem por finalidade gerir a frequência acadêmica do referido hospital. O intuito principal do estágio foi estruturar um sistema web compatível com o ambiente do framework da SGPTI e que atendesse a necessidade objeto de sua implementação. Para tanto, foram abordados temas das áreas de desenvolvimento Web com o uso do padrão de projeto MVC, utilizando os recursos da JavaServer Faces (JSF) e do PrimeFaces, passando por toda a parte de desenvolvimento Java na IDE do Eclipse combinados com Apache Maven e o Server Wildfly, até chegar a área de Banco de Dados, incluindo a JPA, o framework de persistência Hibernate e o seu destino final, o banco PostgreSQL, onde os dados ficarão armazenados. Ao final, foram apresentados os resultados obtidos e possíveis melhorias no desenvolvimento dessa aplicação web. Palavras chaves: desenvolvimento web, Facelets, JavaServer Faces. 11

12 INTRODUÇÃO O Setor de Gestão de Processos e Tecnologia da Informação (SGPTI) do Hospital Universitário Julio Müller atualmente vem passando por um momento de inovação e de aperfeiçoamento em sua rotina de trabalho, e nesse contexto se destaca a implantação de um ambiente para desenvolvimento Java, com foco principal na criação de um framework, ou seja, de um módulo de gerenciamento de permissão para novos sistemas. Por esse motivo as aplicações existentes, e também as em construção, estão sendo refatoradas para essa nova realidade, inclusive o sistema acadêmico, que é objeto deste trabalho. O Controle Acadêmico HUJM, como dito anteriormente, é parte do ambiente de desenvolvimento de aplicações Java da SGPTI e tem como objetivo gerir toda a rotina dos acadêmicos que frequentam as dependências do Hospital Universitário Julio Muller, contendo dados pessoais dos alunos bem como dados que atestam o seu vínculo com o Hospital. Esse controle se faz necessário devido ao fato do HUJM acolher alunos da área de saúde (internos, residentes, etc.) que estejam cursando disciplinas que exija serem aplicadas em ambiente hospitalar. O objetivo desse trabalho é abordar todas as ferramentas e metodologias escolhidas para o desenvolvimento da aplicação do Controle Acadêmico HUJM e o resultado obtido com essas escolhas. 12

13 1. REVISÃO DE LITERATURA Para a realização das atividades propostas foram necessárias diversas pesquisas e aprofundamento em conceitos vistos no decorrer do curso de Ciência da Computação, da mesma forma um estudo bem criterioso da especificação JavaServer Faces, que é uma tecnologia relativamente nova, para uma melhor compreensão de seu uso e características. As subsessões seguintes descrevem temas e conceitos envolvidos no decorrer das atividades desse estágio supervisionado Visão geral das tecnologias e aplicações de camada única No decorrer da história dos computadores, o desenvolvimento de aplicações passa constantemente por mudanças e esse processo evolutivo tem refletido diretamente na produtividade e na flexibilidade do ambiente de desenvolvimento, que vem se adaptando à medida que vão surgindo novas tecnologias, como veremos a seguir. Ao final dos anos 70 e início dos anos 80, houve a mudança de computadores grandes para computadores pessoais (PCs), e o seu uso deixou de ser algo exclusivo para poucos usuários, tornando-se mais popular (JACOBI & FALLOWS, 2006). Embora a maioria das aplicações desenvolvidas à época representar o que tinha de mais avançado, elas foram projetadas para tarefas com usuário único e os dados eram exclusivos, ou seja, não eram compartilhados. Não havia uma central de bases de dados ou sistemas de . Do ponto de vista da manutenção do sistema, esta solução de camada única consistia em uma aplicação residente em uma máquina. Ela abrigaria ao mesmo tempo as camadas de apresentação (telas), a das regras de negócio e a de dados, o que tornava praticamente impossível o compartilhamento de informações (JACOBI & FALLOWS, 2006). Essa realidade é facilmente expressada na Figura 1 a seguir. 13

14 Figura 1. Descreve a arquitetura de aplicações camada única. (Imagem adaptada de: < Percebe-se, pelo que mostra a Figura 1, que a principal característica da arquitetura 1-tier (camada única) é possuir todo o sistema de informação na máquina cliente Aplicações de duas camadas Também conhecida por cliente-servidor tornou-se o centro das atenções na década de 1980, aposentando as soluções de camada única. A arquitetura de duas camadas permite o compartilhamento de dados, mudando a maneira de desenvolver e implantar as aplicações a partir de então. Aplicações de duas camadas interagem diretamente com o usuário, sendo que a lógica para a tela de visualização e as regras de negócios são armazenadas na máquina cliente, enquanto que os dados residem em um servidor remoto (JACOBI & FALLOWS, 2006). Esta arquitetura permite que vários usuários acessem os dados (centralizados na máquina servidor) com aplicações desktop nas máquinas clientes. 14

15 Exemplo: Microsoft Outlook. A Figura 2 mostra graficamente como seria essa arquitetura. Figura 2. Descreve a arquitetura de aplicações com duas camadas. (Imagem adaptada de: < A arquitetura 2-tier (duas camadas), como se observa na Figura 2, é difere da arquitetura 1-tier (camada única) pelo fato de separar o sistema de informação em duas partes: uma contendo a lógica da aplicação e a gerencia de recursos armazenado em uma máquina servidor, ficando tão somente a camada de aplicação na máquina cliente Aplicações multi-camadas: Web A fase seguinte no desenvolvimento de aplicações chegou com a Internet e os navegadores web e introduziu a arquitetura de três camadas, ou de vários níveis de camadas. Arquitetura com vários níveis de camadas permite aos desenvolvedores que se concentrem em modelos de domínios (acesso a dados), Views (apresentação), e nos controladores (lógica). Este paradigma de programação, que representa a divisão 15

16 entre essas camadas, é conhecido como padrão Modelo-Visão-Controlador, ou como o nome em inglês Model-View-Controller (MVC). Essa arquitetura foi introduzida pela primeira vez nos aparelhos SmallTalk e se espalhou na comunidade de desenvolvedores na década de 1980, transformando em uma combinação de um cliente padrão (navegador da Web) e um protocolo de comunicação padrão (HTTP), dando aos usuários acesso ubíquo para aplicações centralizadoras, como o , por exemplo, através de um navegador (JACOBI & FALLOWS, 2006). A partir de então, as aplicações já podiam ser baixadas da internet, bem como suas atualizações. A Figura 3 mostra um esquema simples de arquitetura para uma aplicação multi-camadas. O Cliente via browser (navegador) ou móbile (smartphone) acessa a aplicação, num contêiner Java, para então ter contato ao sistema de informação. Tudo ocorrendo por meio de um protocolo de comunicação. Figura 3. Arquitetura J2EE comum a uma solução de software multi-camadas. (Imagem retirada de JACOBI and FALLOWS, 2006). As aplicações Web (WebApps, também conhecidas como aplicações baseadas na Web) se caracterizam por possuir um amplo conjunto de conceitos e 16

17 terminologias associadas, além de possuírem características de aplicações hipermídia (PRESSMAN, 2011). Esse tipo de sistema não necessita executar a partir de uma instalação local, como acontece com as aplicações desktop. Basta o uso de um navegador web para acontecer a execução da maioria das aplicações web. 1.4 O Padrão MVC A parte mais sensível de um software interativo é a interface do usuário (ou a View) por ser o meio de contato que os usuários utilizam para se comunicar com a aplicação (DUDNEY, 2004). Em outras palavras, é a parte mais visível da maioria dos sistemas de software. Além das alterações diárias nos requisitos, podem existir exigências como o suporte a mais de um sistema operacional, cada um pode necessitar uma aparência diferente, por exemplo. Uma exigência como esta pode complicar o que à primeira vista poderia ter sido uma simples interface. As aplicações ditas monolíticas (camada única) são altamente acopladas, tornando até mesmo pequenas alterações complicadas e sujeitas a erros. Consequentemente, as alterações podem se propagar por todo o sistema. Além disso, os requisitos do usuário podem forçar a manutenção de versões distintas para a mesma aplicação. Isso adiciona uma dimensão adicional de complexidade e muitas vezes resultam em versões de uma mesma aplicação, mas dessincronizadas. O padrão MVC oferece uma solução flexível para esses problemas, dissociando os componentes Model, View e Controller de uma aplicação e proporcionando uma interface uniforme entre eles. Nesse sentido, Dudney (2004) elenca abaixo o que ele define como boas práticas de programação: disponibilizar diferentes representações da mesma aplicação de dados; fornecer uma aparência diferente e uma interface com o usuário, sem afetar o resto da aplicação; os eventos devem atualizar instantaneamente os dados da aplicação ou outros componentes da interface do usuário, enquanto que as alterações aos dados de 17

18 aplicação devem ser refletidas imediatamente nos componentes de interface do usuário; reuso de um ou mais componentes da interface do usuário de forma independente dos dados da aplicação; A estrutura do padrão MVC é descrita na Figura 4. O Cliente via navegador, faz uma requisição ou envio de dados ao Controlador, que num primeiro momento trata essas informações ao mesmo tempo em que solicita um comportamento do Modelo e uma resposta da Visão. O Modelo por sua vez, encapsula funcionalidades e objetos e incorpora os estados para finalmente enviar os dados para a Visão, que prepara esses dados para retornar ao Cliente. Figura 4. Padrão MVC (PRESSMAN, 2011). Para Sommerville (2011), o padrão MVC é base do gerenciamento em muitos sistemas baseados em Web e as noções de separação e independência são fundamentais para o projeto de arquitetura. A Tabela 1 descreve o comportamento do padrão MVC. Nome Descrição MVC (Modelo-Visão Controlador) Separa a apresentação e a interação dos dados do sistema. O sistema é estruturado em três componentes lógicos que interagem entre si. O componente Modelo gerencia o sistema de dados e as operações associadas a esses dados. O componente Visão define e gerencia como os 18

19 Quando é usado Vantagens Desvantagens dados são apresentados ao usuário. O componente Controlador gerencia à interação do usuário (por exemplo, teclas, cliques do mouse, etc.) e passa essas interações para a Visão e o Modelo. É usado quando existem várias maneiras de se visualizar e interagir com dados. Também quando são futuros requisitos de interação e apresentação de dados. Permite que os dados sejam alterados de forma independentemente de sua representação, e viceversa. Apoia a apresentação dos mesmos dados de maneiras diferentes, com as alterações feitas em uma representação aparecendo em todas elas. Quando o modelo de dados e as interações são simples, pode envolver código adicional e complexidade de código. Tabela 1. O padrão modelo-visão-controlador (MVC) (Adaptado de SOMMERVILLE, 2011). 1.5 Java Servlet A primeira tecnologia para a produção de aplicações web dinâmicas com Java recebeu o nome de Java Servlet, lançada em 1997 pela Sun Microsystems. Embora não seja usado diretamente pelos desenvolvedores em Java Web, os servlets são as classes que estão na base de todos os aplicativos Java EE (JUNEAU, 2014). Muitos desenvolvedores usam servlets com JSP e JSF, ambas as tecnologias compilam páginas com servlets, em seus containers. Mesmo que os servlets possam atender a qualquer tipo de solicitação, é mais comum responderem às solicitações de HTTP. Os servlets fornecem aos desenvolvedores a flexibilidade para projetar aplicações usando programação no estilo request-response. Eles desempenham um papel fundamental no desenvolvimento orientado à serviços e diferentes tipos de aplicações web podem ser criados e cada um deles é voltado para proporcionar diferentes funcionalidades (JUNEAU, 2014). Servlets tem a capacidade de fornecer respostas HTTP e também processar as regras de negócios dentro de um mesmo código. 19

20 1.6 - JavaServer Faces No ano de 2004 a Sun Microsystems apresentou o seu novo framework Java Web em um esforço de ajudar a simplificar o desenvolvimento de aplicações web. Surgia então o JavaServer Faces (JSF), que seria uma evolução do JavaServer Pages (JSP), acrescentando uma maneira mais organizada em relação ao ciclo de vida e um melhor aproveitamento das modernas tecnologias web (SALEH, 2013). JSF faz uso de arquivos XML para construir as views e de classes Java para montar toda a lógica da aplicação e nesse contexto adere à arquitetura de projetos MVC. Todas as chamadas são processadas por um servlet chamado FacesServlet (JUNEAU, 2014). O FacesServlet é o responsável pela construção da árvore de componentes, pelo processamento de eventos, definindo os processos seguintes e retornando as respostas das chamadas. JSF usa um arquivo de recursos chamado faces-config.xml para especificar os detalhes da aplicação, tais como as regras de navegação dentre outras configurações. Além disso, tecnologia JSF permite integração com outras tecnologias como Ajax, por exemplo, permitindo assim desenvolver um conteúdo mais dinâmico. A arquitetura do JSF é baseada no padrão MVC2. Ao contrário do padrão MVC1, o padrão MVC2 desacopla a view do controller a partir do model. A Figura 5 mostra bem a arquitetura JSF MVC2. Figura 5. Arquitetura JSF(Padrão MVC2). (SALEH, LYKKE e WADIA, 2013). 20

21 Conforme visto em Faria (2015), ao executar uma página construída usando componentes JSF, ela passará por um ciclo de vida de processamento bem definido, constituído por 6 fases: 1 Restaurar visão; 2 Aplicar valores de requisição; 3 Processar validações; 4 Atualizar os valores do modelo; 5 Invocar a aplicação; 6 Renderizar a resposta. Todas essas fases do ciclo de vida do JSF estão representadas na Figura 6, abaixo. Figura 6. Ciclo de vida JSF (extraído de FARIA, 2015) No momento que é feito uma requisição, a primeira fase restaura a visão e a hierarquia dos componentes que compõem a página solicitada. A seguir, numa segunda etapa é feito a aplicação dos valores da requisição com a atualização de informações obtidas na requisição. Depois, um terceiro momento essas mesmas informações devem ser validadas, ou seja, convertidas em tipos específicos e anexadas aos componentes. A partir de então a aplicação começa a efetuar a atualização dos valores nos objetos do modelo de dados. Em seguida, a aplicação é 21

22 invocada e os eventos de formulário são executados. O processo final consiste na renderização da resposta para que seja gerada a saída com todos os componentes nos seus estados atuais e então é enviada uma resposta ao cliente (usuário). 1.7 Mapeamento Objeto Relacional (ORM) Mapeamento objeto relacional é uma técnica de programação para conversão de dados entre banco de dados relacionais e linguagens de programação orientada a objetos (FARIA, 2015). Está interligada com a JPA e com técnicas de persistência, como visto no tópico anterior e também no próximo. 1.8 JPA e Hibernate A Java Persistence API (JPA) é um framework para persistência em Java, que oferece uma API de mapeamento objeto-relacional e soluções para integrar persistência com sistemas corporativos escaláveis (FARIA, 2015). Ainda segundo FARIA, com o uso de JPA, os objetos passam a ser definidos como POJO (Plain Old Java Objects), ou seja, classes que representam entidades do sistema utilizando de anotações para persistir objetos. Além dos recursos da JPA, a ferramenta Hibernate ORM possui alguns módulos que complementam a persistência, além de possuir um conjunto de interfaces para consultas usando critérios, a Critéria e uma linguagem de consulta chamada HQL (Hibernate Query Language). Outra opção SQL é a JPQL (Java Persistence Query Language), que é uma linguagem de consulta padrão da JPA e permite escrever consultas portáveis, independente do banco de dados. 22

23 2. MATERIAS, TÉCNICAS E MÉTODOS Para a construção do ambiente de desenvolvimento, foram utilizados os seguintes softwares, plugins e bibliotecas: Eclipse Java EE IDE Mars.1 com plugin JBoss; Wildfly 9.0.2; JDK 8u71; Postgresql PgAdmin Para a idealização da aplicação foi levado em conta a Análise de Sistema e Processos já efetuada pela equipe de desenvolvimento da SGPTI, que idealizou o Controle Acadêmico, não sendo necessário começar por essa fase inicial. Entretanto foram realizados esboços para o entendimento e simular o sistema proposto. Um dos esboços criados foi o Diagrama de Atividades que simula um CRUD da entidade central da aplicação, como é mostrado na Figura 7, a seguir. Figura 7. Diagrama de atividades (CRUD Aluno). 23

24 2.1 - Apache Maven Apache Maven é uma ferramenta de gerenciamento de configuração do projeto de desenvolvimento de uma aplicação. Cada projeto Maven tem um arquivo POM (Project Object Model), ou projeto de modelo de objeto, o pom.xml. O arquivo POM inclui as dependências do projeto para compilar e construir o projeto em um artefato (SALEH, 2013). Para tanto, o Maven recebe as dependências do arquivo POM e depois efetua os downloads dessas dependências no disco local, caso não sejam encontrados nele para depois disso, executar a compilação e a montagem das fontes compiladas para um artefato. O artefato alvo desse trabalho é o arquivo WAR para aplicação web Java EE. Uma das características mais fortes do Maven é a sua estrutura rígida em suas aplicações, como mostrado na Figura 8. Figura 8. Estrutura inicial do projeto acadêmico. Como mostrado, a raiz do projeto contém duas subpastas principais (src e target) e o arquivo (POM). O diretório src contém o código-fonte da aplicação e o diretório target contém os artefatos gerados. O diretório src tem um número de subdiretórios e cada um desses diretórios tem uma finalidade específica: src/main/java: contém o código-fonte Java da aplicação; src/main/resources: contém os recursos que a aplicação precisa, tais como o pacote de recursos; src/test/java: reservado para os testes da aplicação; 24

25 src/test/resources: reservado para os testes de recursos; src/main/webapp: inclui os arquivos do projeto de aplicação JEE Web; src/test: inclui os testes de unidade da aplicação; 2.2 Facelets Pages Existem várias definições para o Facelets. Criado pela Sun Microsystems e atualmente mantido pela Oracle, Facelets é um sistema de template web, subprojeto do JSF e linguagem de descrição de páginas. Na documentação do Facelets na Oracle estão elencadas as vantagens de seu uso, os quais seguem abaixo: suporte para reuso de código através de templates e componentes; extensibilidade funcional dos componentes e customização de objetos server-side; tempo de compilação rápido; validação da EL em tempo de compilação; renderização de alto desempenho. Abaixo, na Tabela 2 há uma descrição das tags existentes no Facelets: Tag ui:component ui:composition ui:debug ui:define ui:decorate ui:fragment ui:include ui:insert ui:param ui:repeat ui:remove Descrição Define um componente modelo e especifica um nome de arquivo. Define uma composição de página e encapsula marcações JSF. Cria um componente de depuração, captura informações da árvore de componentes. Define o conteúdo que é inserido em um template de página. decora partes de uma página. Define um fragmento de modelo, assim como o ui:component, desconsiderando conteúdo exteriores a tag. Permite o encapsulamento de outra página XHTML e sua reutilização dentro de uma view. Insere conteúdo em um modelo. Passa parâmetros para um arquivo ou modelo. Iteração sobre uma coleção de dados. Remove conteúdo de uma pagina. Tabela 2 Controle Facelets Page e Template Tags (adaptado de JUNEAU). 25

26 E, finalmente, a Figura 9 mostra um arquivo XHTML do projeto acadêmico com as configurações do Facelets: Figura 9. Arquivo listadeestados.xhtml do projeto acadêmico (exibido com Sublime Text 3). Conforme se verifica na Figura 9, o Facelets consegue conciliar os diversos componentes importados, e assim, incrementa o corpo do XHTML e o resultado final é visto na Figura 10. Figura 10. Tela gerada do arquivo listadeestados.jsf 26

27 2.3. Views As views de uma aplicação JSF nada mais são do que a interface da aplicação. Trata-se das telas (páginas) que compõem a parte visual do sistema. As views são responsáveis pelo contato direto com o usuário, interagindo com ele, recebendo comandos (eventos) e retornando respostas do sistema. Entretanto, para que haja comunicação com o sistema as views são dependentes dos managed beans, que são as classes que recebem os dados inseridos na interface da aplicação Managed Beans O objetivo principal das classes Managed Beans é se comunicar com as Views da aplicação. Após essa comunicação, precisam repassar as informações coletadas para as classes entidades, dentro do que rege as regras de negócios e aguardar uma definição do processo e retornar uma resposta para a interface Domain Model O primeiro passo foi verificar as configurações iniciais da aplicação. O segundo passo foi organizar o processo de comunicação com o usuário e coleta de dados (views e managed beans). O passo seguinte é trabalhar as classes de domínio, ou seja, o tratamento desses dados. Essa é fase de elaboração das regras de negócios, fase de definir o comportamento das classes que serão entidades do sistema e aquelas que funcionarão como auxiliares dentro da lógica proposta. O Model pode ser subdividido em subsistemas, na maneira mais conveniente para o desenvolvedor, separando entidades, regras de negócios, beans, DAO s, etc. As configurações necessárias para o mapeamento objeto/relacional (persistência) será aplicado nas classes entidades através de anotações JPA. 27

28 2.6 Persistência Persistência pode ser entendida como transformar as classes, mais especificamente, as entidades do sistema, em objetos a serem refletidos no banco de dados. Ela é estruturada na JPA e faz uso de um arquivo chamado persistence.xml. O arquivo persistence.xml é o ponto de partida de qualquer aplicação que use a JPA. Nele ficarão configurações responsáveis por informar com qual banco de dados a aplicação deve se conectar, configurações específicas da implementação, entidades a serem utilizados, arquivos de configurações e outros (COELHO, 2015). A pasta META-INF é o local onde deve estar o arquivo de persistência, caso não seja gerada pela IDE, pode ser criada manualmente, como mostrada abaixo na Figura 11. Figura 11 Arquivo persistence.xml e sua localização no projeto academico. 28

29 3. RESULTADOS Os resultados obtidos com esse trabalho são uma primeira versão do Controle Acadêmico HUJM e a correspondente documentação do código fonte. O Controle Acadêmico HUJM é parte do ambiente de desenvolvimento de aplicações Java da SGPTI e tem como objetivo gerir toda a rotina dos acadêmicos que frequentam as dependências do Hospital Universitário Julio Muller, contendo dados pessoais dos alunos bem como dados que atestam o seu vínculo com o Hospital. A criação e construção da aplicação transcorreram em paralelo à criação e construção do framework de desenvolvimento da SGPTI ao qual o Controle Acadêmico fará parte. Essa primeira versão da aplicação não pode ser considerada como uma versão pronta, pois a mesma teve como primeiro objetivo atender aos requisitos da disciplina Estágio Supervisionado e para a conclusão do Curso Bacharelado em Ciência da Computação da Universidade Federal de Mato Grosso. Entretanto, a mesma deverá passar pelo crivo da equipe de desenvolvimento da SGPTI e passar por ajustes, se necessário, para que possa ser incorporada ao seu ambiente. Ao inicio do trabalho, a primeira preocupação foi em procurar atender os requisitos do projeto dentro dos meios disponíveis pelo framework JSF e ferramentas auxiliares. Nas subsessões seguintes será descrito os pormenores e detalhes da construção da aplicação Configuração dos arquivos web.xml e faces-config.xml Inicialmente, existem dois arquivos de configuração, que são o web.xml e faces-config.xml. O arquivo web.xml é o descritor padrão da implementação do módulo web em que o Faces Servlets está definido. O principal objetivo do o Faces Servlets é interceptar os pedidos para as páginas JSF, a fim de preparar o contexto JSF antes de acessar a página JSF solicitada. A Figura 12 mostra o arquivo web.xml do Acadêmico HUJM. 29

30 Figura 12. Arquivo web.xml. Agora, passamos para o arquivo faces-config, que inclui a configuração relacionado especificamente ao JSF. Na verdade, uma vez que JSF 2.0, o arquivo faces-config se torna opcional, pois a maioria da configuração JSF pode ser definida usando as anotações Java. A Figura 13 mostra o arquivo de configuração faces-config do acadêmico HUJM. À esquerda a localização do arquivo no projeto e à direita o conteúdo interno do arquivo, com suas configurações, como se vê na imagem. Figura 13. Arquivo faces-config.xml 30

31 3.2. Estrutura da aplicação A estrutura da aplicação procurou seguir o padrão MVC, subdividindo o projeto em Modelo, Visão e Controladores. Como foi dito no decorrer desse trabalho, não há um padrão rigoroso de como deve ser distribuído os pacotes de códigos, ficando ao critério do desenvolvedor, implementar de acordo com sua interpretação do problema. No nosso caso em particular, entendeu-se que a parte que se refere aos controladores seria representada pelos arquivos de configurações JSF. Veremos na próxima subseção mais detalhada quais são esses arquivos e suas particularidades. A parte que se refere às visões seriam distribuídas em subpastas existentes na pasta webapp do projeto. Também será detalhada mais a frente. E por fim, a parte que se refere ao Modelo ficou alocada no pacote Model. Esse pacote é subdividido em outros subpacotes, de acordo com suas atribuições e comportamento. Vale salientar que outros pacotes se fizeram necessários para auxiliar no desenvolvimento da aplicação. Na Figura 14 vemos uma relação dos pacotes criados no projeto acadêmico. 31

32 Figura 14 Relação dos pacotes do projeto acadêmico. Toda essa parte que constitui o folder src/main/java, mostrado na Figura 14 acima, representa toda a lógica da aplicação que está entre a interface e o banco de dados. Logo abaixo aparece o folder src/main/resources destinado a arquivos que servirão de recursos para a aplicação. O arquivo persistence.xml se encontra nesse folder. Em seguida vemos duas pastas de testes, src/test/java e src/test/resources. Entre meio as pastas de sistemas ficam a Maven Dependencies (dependências do Maven), a JRE System Library (as bibliotecas Java) e as Referenced Libraries (bibliotecas referenciadas). As dependências Maven são as importações efetuadas pelo arquivo pom.xml. Já as bibliotecas Java, nesse caso podem ser entendidas pela versão do jdk, indispensável para o projeto. As bibliotecas referenciadas são arquivos ocasionais, que dependendo da necessidade, podem ser agregadas a aplicação. Cada uma das subpastas da lógica da aplicação será vistas nos tópicos seguintes. Assim como será visto também, as subpastas que compõem a visão da 32

33 aplicação, no folder src/main/webapp. Essa outra parte da estrutura pode ser visto na Figura 15, a seguir. Figura 15 Relação das pastas de visões do projeto acadêmico O arquivo pom.xml O arquivo pom.xml é o responsável por importar todas as dependências externas necessárias ao projeto. No cabeçalho do arquivo ficam as configurações do repositório do próprio arquivo, como, por exemplo, o namespace e o esquema. Seguido das configurações do arquivo local, dentro do projeto. A partir daí começam as declarações de dependências. 33

34 O primeiro lote de dependências, visto na Figura 16, são as dependências da Apache: BeanUtil e Commons IO. A dependência BeanUtil traz funcionalidades que podem ser úteis em tarefas com classes beans, na comunicação com a interface. A Commons IO também auxilia na comunicação com a interface, em funcionalidades de entradas e saídas, como implementações de stream e filtros, por exemplo. Figura 16. As dependências da Apache. O segundo lote de dependências são responsáveis pela persistência dos dados. Trata-se das dependências do Hibernate. São elas: Hibernate Core, Hibernate EntityManager e Hibernate Validator. O Hibernate Core é nada mais que o núcleo do Hibernate. As funcionalidades centrais do Hibernate se encontra nessa dependência. Já no Hibernate EntityManager estão as configurações da JPA, na criação das entidades para fazer o mapeamento objeto-relacional. A função do Hibernate Validator é fazer a validação dos dados que serão persistidos no banco de dados. Todas essas dependências estão na Figura 17, abaixo. 34

35 Figura 17. As dependências do Hibernate. Esse terceiro lote de dependências é o mais extenso de todos do projeto. São quatro dependências Javax. Em Java temos os pacotes principais, que são o núcleo da linguagem. Javax é um pacote de extensão. As quatro dependências Javax importadas para o projeto são: Javax CDI, Javax Faces, Javax Inject, Javax Servlet e Javax Validation. E as funcionalidades seguem abaixo, respectivamente: javax cdi: reúne recursos para tratar das injeções e dependências de contexto; javax faces: trata-se do núcleo que compila o JSF; javax inject: trata das injeções do JSF; javax servlet: compõem o servlet da aplicação. Na Figura 18, vemos todas as dependências Javax. 35

36 Figura 18. As dependências Javax. O quarto lote, na verdade são várias dependências unitárias, com exceção das dependências do PrettyFaces. Começamos pela dependência da OmniFaces. A OmniFaces é uma biblioteca de utilitários para JSF. A dependência seguinte trata do driver do banco de dados, no nosso caso, do PostgreSQL. O PrettyFaces é um redirecionador de URL para JSF e as suas dependências tratam da configuração e da reescrita necessária para o redirecionamento. E a outra dependência, a do PrimeFaces, é responsável pela remodelagem visual dos componentes JSF. Todas essas dependências estão distribuídas na Figura 19, a seguir. 36

37 Figura 19. As dependências OmniFaces, PostgreSQL, PrettyFaces e PrimeFaces Finalizando, temos as dependências do framework Springs, que são três: Context, Core e TX. O Spring auxilia no fornecimento de injeções de dependências e controla o ciclo de vida do JSF. No Build fica o compilador do Maven e demais plugins, caso necessários. A Figura 20 mostra essa parte do arquivo pom.xml. 37

38 Figura 20. As dependências Springs e o Build As classes Model e os pacotes auxiliares O pacote Model é subdivido em subpacotes: Beans, DAO e Entities. O pacote Beans armazena os managed beans, assim como o pacote DAO armazena as classes DAO e por fim, o pacote Entities, as entidades do projeto. Um exemplo de managed bean é visto no Apêndice 1. A classe AlunoBean instancia a entidade Aluno e um AlunoDAO. A entidade Aluno está representada no Apêndice 2 e herda alguns atributos na entidade Pessoa, cujo código, devido sua extensão está distribuído nos Apêndices 3, 4, 5 e 6. A classe AlunoDAO, que pode ser vista na Figura 21, tem uma particularidade: não possui, de momento, atributos e métodos. Só estende da classe GenericDAO, que aí sim, possui todas as funcionalidades de um DAO, utilizáveis por todas as classes DAO do projeto. O GenericDAO é exposto no Apêndice 7. 38

39 Figura 21. AlunoDAO Além do pacote Model, ficou definido outros pacotes auxiliares: Converters, Exceptions, Filters, Repository, Service, Util e Validators. Converters: é um pacote reservado às classes que têm por função serem conversores de entidades. Muitos dados coletados em componentes tais como o combobox não é a entidade propriamente dita e sim o id dessa entidade. Exceptions: pacote reservado ao tratamento dos casos de exceções; Filters: pacote reservado às informações que necessitam ser passar por um sistema de filtro; Repository: pacote que trata a camada de persistência do banco de dados; Service: pacote que desempenha várias funções (serviços) para a aplicação; Util: pacote que contém classes de utilidades diversas à aplicação; Validators: pacote reservado à validação de informações; 3.5. Converters Quando há a necessidade de converter um objeto para o tipo String ou o contrário usa-se um componente do JSF chamado converter. Sua atuação fica entre a view (página JSF) e o Managed Bean. Na Figura 22 pode se ver o pacote Converter e as classes que o compõe e no Apêndice 8, a classe AlunoConverter. 39

40 Figura 22. Pacote Converter 3.6. Exceptions Um sistema deve estar preparado para situações inesperadas em sua execução e é para isso que servem as exceções (exceptions, em inglês). Classes Exceptions procuram tratar esses problemas. Nesse projeto as duas classes com essas funcionalidades, a CustomExceptionHandler e a CustomExceptionHandlerFactory auxiliam na navegação. O pacote Exceptions aparece juntamente com o pacote Filters na Figura Filters Na medida em que o usuário navega pela aplicação, efetuando comandos e transações, é necessário realizar operações importantes para o sistema, antes o fluxo de navegação seja concluído, e nesse projeto, a classe ConexaoFilters desempenha esse papel. Entretanto, há funções específicas nos outros filtros. Destacamos aqui a classe AlunoFilter, como exemplo, que é fundamental para o projeto, apesar de sua simplicidade aparente, como verifica-se no Apêndice 9. 40

41 Figura 23. Pacotes Exceptions e Filters 3.8. Repository A função desse pacote é trabalhar em conjunto com o pacote Converter. Suas classes servem de repositório até que o processo de conversão de tipos das páginas JSF e os managed beans seja concluída. A Figura 24 mostra o pacote Repository e o pacote Service e no Apêndice 10, encontra-se a classe AlunoRepository. 41

42 Figura 24. Pacotes Repository e Service Service Para trabalhar com regras de negócios, como geração de listas de consultas, foram criadas as classes Service, A vantagem desse tipo de solução é evitar sobrecarregar as classes DAO. O Apêndice 11 exibe os códigos fontes da classe AlunoService e também de AlunoServiceImpl Util Esse pacote abriga várias classes que trabalham individualmente em funções específicas, como por exemplo, o HibernateUtil, que cria as fábricas de sessões que acessam o banco de dados. Nesse pacote estão outras classes importantes para o sistema, tais como a FacesContextUtil e PhaseListenerUtil, etc. O Apêndice 12 mostra a classe HibernateUtil e suas propriedades. 42

43 3.11. Validators No pacote Validators há duas classes: CPFValidator e Validator. Ambas as classes possuem algoritmos característicos para efetuar a validação dos dados recebidos da interface e comprovar sua veracidade. A Figura 25 mostra o pacote Validators, juntamente com o pacote Util, visto no tópico anterior. 25. Pacote Util Views As páginas do projeto (views) representam a interface da aplicação. São elas que interagem com o usuário, ou seja, é o primeiro estágio do tráfego dos dados pelo sistema. As figuras seguintes: Figura 26, Figura 27, Figura 28 e Figura 29 mostram algumas das telas geradas pelo sistema. 43

44 Figura 26. Tela cadastrodecurso.jsf Na Figura 26 podemos ver uma tela de cadastro. Ela é composta por um cabeçalho, cujos componentes são oriundos de um arquivo template, que replica para todas as telas do sistema. No corpo dessa página encontra-se um formulário destinado ao cadastro de cursos, cujos campos incluem: nome do curso, instituição de ensino, turma, estágio/atividade, data de criação no sistema e a data da última alteração efetuada. Além dos botões Salvar e Voltar. Figura 27. Tela listadeturmas.jsf A Figura 27 assim como a figura anterior, importa o cabeçalho do sistema. O corpo da página reflete o resultado de uma consulta que exibe uma lista de turmas. 44

45 Nesse exemplo em específico a consulta retornou uma lista vazia, pois não há turma cadastrada. A tela tem como opção exibir o nome da turma, seu código e o curso ao qual pertence. Acima da tabela gerada há um botão Nova Turma, que redireciona para a tela Cadastro de Turmas. Figura 28. Tela cadastrodealunos.jsf A Figura 28 mostra uma das principais telas do Controle Acadêmico. A tela Cadastro de Alunos é a responsável pela inclusão do aluno dentro do sistema. Seu corpo é composto por um formulário subdividido em três painéis, sendo eles: Dados do Aluno, Dados de Contato e Dados do Estágio/Atividade. Descrevemos abaixo cada um dos componentes desses painéis: Dados do Aluno: código interno (id gerada pelo sistema), Registro GEP (código fornecido pelo HUJM), Registro RGA (código fornecido pela instituição de ensino), CPF, RG, nome do aluno, sexo, data de nascimento, naturalidade, estado de origem, instituição de ensino, nível de escolaridade, curso e turma; 45

46 Dados de Contato: endereço do aluno (logradouro), bairro, CEP, complemento, cidade, estado, telefone residencial, celulares, contato e ; Dados do Estágio/Atividade: descrição, programa, data de início, data de término, horários, benefícios (uso de estacionamento e/ou biblioteca) e local, com data de início e data fim. A página possui também botões Gravar e Fechar para quando o processo de cadastro esteja terminado. Outros botões são: o Adicionar, para incluir mais locais ao estágio/atividade, os botões auxiliares de calendário nas datas e o botão Foto, para capturar uma foto do aluno. Figura 29. Tela cadastrodealunos.jsf após clique no botão Foto A Figura 29 mostra a mesma tela da Figura 28, com a exceção de exibir também uma janela pop-up com a imagem de uma webcam. Isso deve-se a um clique no botão Foto, logo abaixo do cabeçalho. Esse é um recurso oferecido pela showcase do PrimeFace e configurado nessa página. Após clicar no botão Capture, da janela suspensa, a imagem da webcam é salva em um local no disco rígido e apenas o endereço dessa imagem é armazenada. 46

47 4. DIFICULDADES ENCONTRADAS 4.1. Padrão de Projeto No início do projeto ficou definido que a aplicação seria desenvolvida com as características JSF utilizando repositórios maven. Entretanto, ao utilizar a IDE do Eclipse nota-se a raiz do Projeto JSF é totalmente diferente de um Projeto Maven. Ao decorrer do tempo percebeu-se que não há uma maneira única de desenvolver uma aplicação JSF, pode-se também criar um projeto de página dinâmica web. São várias maneiras de se chegar a um mesmo objetivo. Ao final, buscou-se não se desviar do que fora proposto e a aplicação foi desenvolvida em JSF aos padrões Maven. Definido que o projeto seguiria os padrões do Maven, outra vez verificou-se que a raiz do projeto gerado pela IDE do Eclipse difere do padrão mencionado na documentação do Maven. Depois de analisadas as diferenças, optou-se por seguir com o padrão gerado pelo Eclipse, tendo em vista que mudanças provocariam atrasos desnecessários Facelets e Servlets Configurar Facelets e Servlet exige dedicação e concentração. Muitos recursos podem não funcionar se não tiverem nas configurações especificas. Desde a versão do JDK, passando pelo Server, se houver algum conflito de versões, a aplicação pode não responder JavaServer Faces + PrimeFaces Muitos recursos existentes no JSF também são encontrados na showcase do PrimeFaces. Uma página XHML pode conter componentes do JSF e também do PrimeFaces. No inicio alguns problemas na compilação desses componentes surgiram devido a essa variedade e foi preciso se familiarizar com o comportamento de cada um dos componentes. 47

48 4.4. Managed Beans A parte que se refere aos Managed Beans foi desafiadora devido ao seu comportamento. Também não há um padrão, podendo atuar apenas como um comunicador com as views, recebendo tão somente os eventos e repassando para outras classes que se encarregariam das regras de negócios, como também eles próprios tratar das regras de negócios e se comunicarem com as views e com as classes DAO Classes DAO No que se refere às classes DAO, o impasse se deveu também pela ausência de um padrão. As maneiras de implementar as DAO são as mais variadas. Uma alternativa seria cada entidade possuir a sua DAO com o seu CRUD específico. Outra maneira seria criar um DAO genérico e estendê-lo para as demais classes. Tem implementações que separam as consultas em classes distintas Persistência A persistência das classes com o banco pode ser feita através de arquivos de configuração, como o hibernate.cfg.xml ou através de anotações. Optou-se pelas anotações devido a uma maior facilidade com o conceito. Porém o uso de anotações exige atenção com a validação da JPA Views A dificuldade quanto as views deveu-se à pouca familiaridade em relação a recursos de designer de interfaces web, como por exemplo, o CSS. Na medida do possível procurou-se implantar esses conceitos. 48

49 5. CONCLUSÕES O presente trabalho baseou-se nos conceitos de Desenvolvimento Java Web, utilizando a tecnologia JSF (JavaServer Faces). O objetivo do trabalho foi desenvolver uma ferramenta de controle acadêmico para o Hospital Universitário Júlio Müller. A aplicação foi idealizada em uma estrutura Maven, seguindo os padrões MVC para a geração dos pacotes, das telas e para a configuração do ambiente. No decorrer do estágio, com estudo dos conceitos e o uso das ferramentas, foi possível implementar uma primeira versão da aplicação. A preocupação inicial era aplicar os recursos do JSF, mas com o passar do tempo, novas atividades surgiram, exigindo uma pluralidade de tecnologias envolvidas no sistema. Conceitos como persistência de dados, mapeamento objeto-relacional, tratamento de eventos, conversões, dentre outros tiveram que ser implantados no projeto. Posteriormente novas funcionalidades podem ser integradas a aplicação, tornando-a mais robusta, como por exemplo, gerenciamento de relatórios, controle de usuários. Quando o Controle Acadêmico for incorporado ao ambiente de desenvolvimento da SGPTI, e passar a ter acesso a todas as funcionalidades do framework recém-implantado, alterações e adaptações serão necessárias, mas essas mudanças não afetarão a estrutura do projeto, podendo perfeitamente ser reaproveitado o código fonte. 49

50 6. REFERÊNCIAS BIBLIOGRÁFICAS COELHO, Hebert; JPA Eficaz As melhores práticas de persistência de dados. 1 a ed. São Paulo. Casa do Código. DUDNEY, Bill; LEHR, Jonathan; WILLIS, Bill; MATTINGLY, LeRoy; Mastering JavaServer Faces. 1 a ed. Indianápolis, Indiana. Wiley Publishing. FARIA, Thiago; Java EE 7 com JSF, PrimeFaces e CDI. 2 a ed. São Paulo. AlgaWorks. FARIA, Thiago; MOREIRA JR, Normandes; JPA e Hibernate. 1 a ed. São Paulo. AlgaWorks. JACOBI, Jonas; FALLOWS, John; Pro JSF and Ajax Building Rich Internet Components. 1 a. ed. Nova Iorque. Apress. JUNEAU, Josh; JavaServer Faces Introduction by Example. 1 a. ed. Nova Iorque. Apress. KEITH, Mike; SCHINCARIOL, Merrick; Pro JPA 2 Mastering the Java Persistence API. 1 a. ed. Nova Iorque. Apress. PRESSMAN, Roger S.; Engenharia de Software Uma Abordagem Profissional. 7 a ed. Porto Alegre. AMGH. SALEH, Hazem; CHRISTENSEN, Allan Lykke; WADIA, Zubin; Pro JSF and HTML5 Building Rich Internet Components. 2 a. ed. Nova Iorque. Apress. SOMMERVILLE, Ian; Engenharia de Software. 9 a ed. São Paulo. Pearson. TONG, Kent Iok; Beginning JSF 2 APIs and JBoss Seam. 1 a ed. Nova Iorque. Apress. 50

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB Bruno Costa Silva 1, Ricardo Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil brunocostasilva62@hotmail.com,

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Padrões de codificação Java (JSF)

Padrões de codificação Java (JSF) UNIVERSIDADE CEUMA Java (JSF) Versão 1.2 17/06/2013 Este é um modelo de codificação para desenvolvimento Java existente no Grupo Ceuma de Educação. Aqui encontram-se os padrões utilizados por equipes internas

Leia mais

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB INTRODUÇÃO AO DESENVOLVIMENTO WEB COM JAVA Tópicos Aplicações, componentes e containers web Aplicações web Modelo de aplicações

Leia mais

Objetos e Componentes Distribuídos: EJB

Objetos e Componentes Distribuídos: EJB : EJB Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta

Leia mais

Objetos e Componentes Distribuídos: EJB e CORBA

Objetos e Componentes Distribuídos: EJB e CORBA : EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

UMA ARQUITETURA VOLTADA PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB.

UMA ARQUITETURA VOLTADA PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB. UMA ARQUITETURA VOLTADA PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB. Djonathan Assis Oliveira 1, Jaime William Dias 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil djonathanassis@gmail.com, jaime@unipar.br

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Continuação... Criando a Interface e adiante

Continuação... Criando a Interface e adiante Continuação... Criando a Interface e adiante Racepitulando 1. Criar um projeto web: JavaServer Faces + Tomcat + Primefaces 2. Criar um banco de dados Postgresql 3. Adicionar os jars: javax.persistence

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

Engenharia de Software. Projeto de Arquitetura

Engenharia de Software. Projeto de Arquitetura Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Java para Web & EJB. Teoria, prática e questões Módulo Introdução e Servlets

Java para Web & EJB. Teoria, prática e questões Módulo Introdução e Servlets Java para Web & EJB Teoria, prática e questões Módulo Introdução e Servlets Introdução ao Desenvolvimento Web com Java Tópicos Aplicações, componentes e containers web Aplicações web Modelo de aplicações

Leia mais

ALUNO: RONI FABIO BANASZEWSKI

ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller ALUNO: RONI FABIO BANASZEWSKI Objetivo Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos Introdução Necessidade de diminuir a complexidade na interação código-banco de dados para o programador,além de diminuir

Leia mais

JBoss Seam. Vinicius Senger Co-fundador Globalcode Alberto J Lemos (Dr. Spock) Instrutor Globalcode. Globalcode Open4Education

JBoss Seam. Vinicius Senger Co-fundador Globalcode Alberto J Lemos (Dr. Spock) Instrutor Globalcode. Globalcode Open4Education JBoss Seam Vinicius Senger Co-fundador Globalcode Alberto J Lemos (Dr. Spock) Instrutor Globalcode Agenda > Introdução > Arquitetura típica Java EE 5 > O que é JBoss Seam? > Porque escolher o JBoss Seam?

Leia mais

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago INE 5612 Professor: Frank Siqueira Alunos: Gustavo de Geus Leonardo Silva Jean Ercilio Thiago DESENVOLVEDORES JAVA EM TODO MUNDO LIDER GAVIN KING JBOSS MANTEVE O SUPORTE História Hibernate foi criado por

Leia mais

Web Presentation Patterns - Controllers

Web Presentation Patterns - Controllers Instituto Superior Técnico 29 de Novembro de 2004 1 2 3 Page Controller Front Controller 4 5 Porquê Usar Web Applications Não necessita instalar software no cliente. Acesso universal fácil. Interface comum

Leia mais

VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO.

VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO. VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO. Julio Fernandes Rocha, Jaime William Dias Universidade Paranaense (Unipar) juliofernandes_rocha@hotmail.com jaime@unipar.br Resumo. Este artigo tem por objetivo

Leia mais

Arquitetura em Camadas

Arquitetura em Camadas Arquitetura em Camadas 1 Introdução Em aplicações OO de médio e grande porte, diversos aspectos devem ser considerados: Apresentação Lógica da aplicação Lógica do negócio Persistência de Objetos Camada

Leia mais

TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL

TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL Nesse tutorial será mostrado como integrar o uso do Spring MVC com Hibernate e MySQL para desenvolver aplicações web. Será utilizado o Spring Tools Suite,

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS 1. Explique a(s) diferença(s) entre design pattern e framework. 2. Analisar o arquivo de configurações (web.xml) abaixo identificando quais suas

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema Arquitetura do Sistema 22 3 Arquitetura do Sistema 3.1. Visão geral O sistema desenvolvido permite a criação de aplicações que possibilitam efetuar consultas em um banco de dados relacional utilizando

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação Linguagem de Programação II Programação Orientada a Objetos Ambientes de Programação Prof. Alessandro Borges 2 Tópicos Prompt de comando JDK IDE NetBeans Eclipse Jbuilder Visual Café Visual J++ NetBeans

Leia mais

Módulo II Arquitetura em Camadas

Módulo II Arquitetura em Camadas Módulo II Arquitetura em Camadas Prof. Ismael H F Santos April 08 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Arquitetura de camadas de Software Arquiteturas em Camadas Padrões para

Leia mais

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES TUTORIA DE USO DO HIBERNATE NA IDE ECLIPSE KEPLER DISCENTE: JOANA DARC CARVALHO DE

Leia mais

Programação para Web I Desenvolvendo templates com Facelets. Prof. Eder de Lima Lacerda

Programação para Web I Desenvolvendo templates com Facelets. Prof. Eder de Lima Lacerda Programação para Web I Desenvolvendo templates com Facelets Prof. Eder de Lima Lacerda ederlacerda@gmail.com HOJE FALAREMOS SOBRE 1. Veremos como funciona a tecnologia de Facelets do Java Server Faces

Leia mais

Continuação... Criando a Interface e adiante

Continuação... Criando a Interface e adiante Continuação... Criando a Interface e adiante Criando a interface Para criar a interface utilizaremos JavaServer Faces Biblioteca PrimeFaces Documentação de PrimeFaces http://www.primefaces.org/showcase/

Leia mais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única

Leia mais

5 Arquitetura de implementação

5 Arquitetura de implementação Arquitetura de implementação 103 5 Arquitetura de implementação 5.1 Visão geral Nossa arquitetura é caracterizada pela construção de um ambiente para execução de aplicações hipermídia definidas segundo

Leia mais

Sistema de Informação e Coordenação - SIC

Sistema de Informação e Coordenação - SIC Sistema de Informação e Coordenação - SIC Tópicos 1- Sistema de Informação e Coordenação - SIC 2- Modelo 3- Tecnologias Usadas 4- Projeto Estrutura 5- Fluxo de Atividades 1- Sistema de Informação e Coordenação

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela

Leia mais

6 Ferramenta para a Especialização de Mecanismos de Persistência

6 Ferramenta para a Especialização de Mecanismos de Persistência Ferramenta para a Especialização de Mecanismos de Persistência 71 6 Ferramenta para a Especialização de Mecanismos de Persistência 6.1. Introdução Esta ferramenta foi desenvolvida para viabilizar o processo

Leia mais

Lista de Exercícios Dissertativo

Lista de Exercícios Dissertativo Lista de Exercícios Dissertativo 1. Um dos alicerces da sociedade é a comunicação, e o homem, desde a antiguidade, busca desenvolver tecnologias para permitir a comunicação em quantidade e com qualidade.

Leia mais

Criando uma aplicação web

Criando uma aplicação web Criando uma aplicação web Aplicações web Criaremos uma aplicação completa utilizando: Bancos de dados Modelo MVC JavaServer Faces (PrimeFaces) Um pouco sobre banco de dados Todas as aplicações precisam

Leia mais

Executa em qualquer plataforma que possua o Java (JDK) da Oracle

Executa em qualquer plataforma que possua o Java (JDK) da Oracle Recurso Benefícios Multiplataforma Executa em qualquer plataforma que possua o Java (JDK) da Oracle Utiliza base de dados Oracle, Microsoft SQL ou MySql Utiliza os principais bancos de dados de mercado

Leia mais

FIGURA 59 Interação entre componentes da plataforma CrystalWalk. Fonte: do autor.

FIGURA 59 Interação entre componentes da plataforma CrystalWalk. Fonte: do autor. 176 4.3.2.1 Componentes: Implementação Para atingir o objetivo de ser distribuído e elástico, adotou-se o padrão SOA e estilo REST na construção e comunicação entre os componentes, resultando na divisão

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB INTRODUÇÃO A PROGRAMAÇÃO PARA WEB PROF. ME. HÉLIO ESPERIDIÃO Navegador O navegador também conhecido como web browser é um programa que habilita seus usuários a interagirem com documentos hospedados em

Leia mais

TRABALHO DE CONCLUSÃO DE CURSO

TRABALHO DE CONCLUSÃO DE CURSO UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO TRABALHO DE CONCLUSÃO DE CURSO Resumo Artigo I Desenvolvimento de Aplicações

Leia mais

Figura 16 Niagara - Visão de grupos de notas.

Figura 16 Niagara - Visão de grupos de notas. Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade

Leia mais

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri FERRAMENTA VISUAL PARA GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri ROTEIRO Introdução Objetivos Motivação Fundamentação Teórica Desenvolvimento

Leia mais

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Bacharelado em Ciências da Computação Estágio supervisionado de Conclusão de Curso PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA

Leia mais

CELINE LIP: UM FRAMEWORK QUE UTILIZA O MODELO IMS LIP EM APLICAÇÕES WEB JEE. Marcelo Gonzaga. Orientador: Prof. Adilson Vahldick

CELINE LIP: UM FRAMEWORK QUE UTILIZA O MODELO IMS LIP EM APLICAÇÕES WEB JEE. Marcelo Gonzaga. Orientador: Prof. Adilson Vahldick CELINE LIP: UM FRAMEWORK QUE UTILIZA O MODELO IMS LIP EM APLICAÇÕES WEB JEE. Marcelo Gonzaga Orientador: Prof. Adilson Vahldick Roteiro da Apresentação Introdução Fundamentação teórica Desenvolvimento

Leia mais

Laboratório 01 NetBeans

Laboratório 01 NetBeans Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os

Leia mais

Tecnologias de Desenvolvimento de Páginas web

Tecnologias de Desenvolvimento de Páginas web Tecnologias de Desenvolvimento de Páginas web HTML DHTML CSS Javascript Visual Basic Script Java HTML Hypertext Markup Language HTML Hypertext Markup Language Linguagem com a qual se definem as páginas

Leia mais

Microsoft Visual Studio Community 2013

Microsoft Visual Studio Community 2013 Microsoft Visual Studio Community 2013 Linguagem de Programação III Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo Instituto Federal de Educação

Leia mais

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA Disciplina: Banco de Dados Prof: Márcio Palheta, Esp.

Leia mais

2ª Edição Décio Heinzelmann Luckow Alexandre Altair de Melo

2ª Edição Décio Heinzelmann Luckow Alexandre Altair de Melo 2ª Edição Décio Heinzelmann Luckow Alexandre Altair de Melo Novatec Copyright 2010, 2015 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução

Leia mais

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Ederson Evaristo Jantsch Orientador: Marcel Hugo 09/07/2002 Roteiro Introdução Aplicação multicamadas Tecnologias

Leia mais

DESENVOLVIMENTO DE SISTEMA DE CLASSIFICADOS PARA A CIDADE DE PAU DOS FERROS/RN

DESENVOLVIMENTO DE SISTEMA DE CLASSIFICADOS PARA A CIDADE DE PAU DOS FERROS/RN DESENVOLVIMENTO DE SISTEMA DE CLASSIFICADOS PARA A CIDADE DE PAU DOS FERROS/RN Pedro Avelino Ferreira Nogueira (1); Sávio Rennan Menêzes Melo (2) ; Herlan Assis Pereira da Silva (3); Bruna Gabriella Carvalho

Leia mais

REVISÃO DE CONCEITOS DE ORIENTAÇÃO A OBJETOS

REVISÃO DE CONCEITOS DE ORIENTAÇÃO A OBJETOS UNIDADEA Desenvolvimento de Aplicações Orientado a Objetos Unidade A Caro(a) Aluno(a): Nesta disciplina, o principal objetivo é que os alunos possam analisar, projetar e desenvolver soluções de software

Leia mais

Academia Java PA JAVA: Programação Avançada em Java (30 horas)

Academia Java PA JAVA: Programação Avançada em Java (30 horas) Academia Java PA JAVA: Programação Avançada em Java (30 horas) Índice Designação do Curso... 2 Duração Total... 2 Destinatários... 2 Perfil de saída... 2 Pré-Requisitos... 2 Objetivo Geral... 2 Objetivos

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão DESENVOLVIMENTO DE SISTEMAS WEB Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 01 Sobre as características da programação orientada a objetos, explique o encapsulamento. Questão 01 - Resposta

Leia mais

Conexão com Banco de Dados

Conexão com Banco de Dados Conexão com Banco de Dados ORM Atualmente os novos sistemas que estão sendo desenvolvidos estão utilizando a técnica de ORM para fazer conexão e acesso a banco de dados. ORM é uma técnica de mapeamento

Leia mais

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA Julio Cesar do Carmo Junior 1, Osvaldo Cesar Pinheiro de Almeida 2 1 Informática para Gestão, Faculdade de Tecnologia, Botucatu, SP, Brasil. E-mail:

Leia mais

Documento de Arquitetura de Software- SGE

Documento de Arquitetura de Software- SGE Documento de Arquitetura de Software- SGE IFG Autor: Marcelo Roldrin Barros Silva 1. Introdução 1.1 Finalidade Este documento oferece uma visão geral arquitetural abrangente do sistema SGE (Sistema de

Leia mais

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

A linguagem Java foi projetada tendo em vista os seguintes objetivos: Java Disciplina: Programação II Professora: Mai-Ly Vanessa Histórico do Java Em 1991 a Sun Microsystems financiou uma pesquisa sobre o que seria a nova onda digital. Desta pesquisa resultou a criação da

Leia mais

Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é:

Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é: Questões de Propósito, Tipo e Fronteira 1. Um dos objetivos da Análise de Pontos de Função é: Simulado para CFPS a) Ajudar no processo de depuração de um software. b) Estimar o tamanho de uma equipe de

Leia mais

Aula 11 Introdução ao Java Script

Aula 11 Introdução ao Java Script Aula 11 Introdução ao Java Script Java Script é uma linguagem que permite trabalhar com a Lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se

Leia mais

Desenvolvimento de Software I

Desenvolvimento de Software I Desenvolvimento de Software I Prof. Arnaldo Martins Hidalgo Junior arnaldo@flash.tv.br http://aulashidalgo.wordpress.com 5 h/a (2 aulas semanais) http://aulashidalgo.wordpress.com 1 Competências Avaliar

Leia mais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 3 4 5 6 7 Padrão de Desenvolvimento? O Conceito de Padrão de Projeto Padrão MVC Persistência MVC Nível

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML Prof. Msc. Hélio Esperidião NAVEGADOR O navegador também conhecido como web browseré um programa que habilita seus usuários a interagirem com documentos

Leia mais

Introdução ao Zend Framework 2

Introdução ao Zend Framework 2 Introdução ao Zend Framework 2 #laryssa-muniz Graduada em Telemática - Estácio de Sá Especialista em Engenharia de Software - UECE Mestranda em Ciências da Computação - UECE Analista de Sistemas - Brain

Leia mais

Criando uma aplicação web. Parte 1

Criando uma aplicação web. Parte 1 Criando uma aplicação web Parte 1 Aplicações web Criaremos uma aplicação completa utilizando: Bancos de dados Modelo MVC JavaServer Faces (PrimeFaces) Um pouco sobre banco de dados Todas as aplicações

Leia mais

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo) Nome do laboratório: Laboratório de Programação Ferramenta 1 -NetBeans 8.0 WEB Elaborado por: Osmar de Oliveira Braz Junior Descrição Este tutorial tem como objetivo mostrar a construção de aplicações

Leia mais

Engenharia de Aplicações Sistemas Interactivos 2009/10! JAVASERVER FACES 1.2. Mestrado em Informática Universidade do Minho! 31!

Engenharia de Aplicações Sistemas Interactivos 2009/10! JAVASERVER FACES 1.2. Mestrado em Informática Universidade do Minho! 31! JAVASERVER FACES 1.2 Mestrado em Informática Universidade do Minho! 31! Java Server Faces (JSF) JSP uma tecnologia" JSF uma framework MVC(-like)" - JSP para a apresentação (ou não)" utilização da JSF tag

Leia mais

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1 Diretriz de Arquitetura de Sistemas Versão 1.0 MAPA/SE/SPOA/CGTI, 2012 Página 1 Histórico de Revisão Data Versão Descrição Autor Revisor 02/01/2012 1.0 Criação do artefato. Pérsio Mairon Thiago Lemos MAPA/SE/SPOA/CGTI,

Leia mais

Formação JAVA Web.

Formação JAVA Web. Inscreva-se na Formação JAVA Web e comece a desenvolver sistemas para Web e Desktop com a linguagem de programação open source multiplataforma mais valorizada do mercado. Carga-horária: 80h O que você

Leia mais

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira, Fabrício Alves e Daniela Claro Requisitos do ambiente Seguem abaixo os

Leia mais

Estilos Arquiteturais

Estilos Arquiteturais Estilos Arquiteturais Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as

Leia mais

4 Processo de Transformação

4 Processo de Transformação Tecnologias Relacionadas 43 4 Processo de Transformação Com a constante mudança nos requisitos (funcionais e não funcionais) do domínio da aplicação, há uma grande necessidade de que os sistemas estejam

Leia mais

3 Tecnologias Relacionadas

3 Tecnologias Relacionadas Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais

Leia mais

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos ARCHITECTURAL DESIGN Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Tópicos abordados Arquitetura de Software Projeto de arquitetura Vantagens de arquitetura

Leia mais

Informática Parte 11 Prof. Márcio Hunecke

Informática Parte 11 Prof. Márcio Hunecke Escriturário Informática Parte 11 Prof. Márcio Hunecke Informática FERRAMENTAS DE INGESTÃO DE DADOS (SQOOP 1.4.6, FLUME 1.7.0, NIFI 1.3.0 E KAFKA 0.11.0) Visão geral sobre os quatro componentes Fazem

Leia mais

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites. Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites. Gabriel Pereira, Especialista em Java da Clarify Projete e desenvolva situações de Mercado com a criação de um

Leia mais

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1 Ambiente Educacional Interativo Móvel para atividade em sala de aula 1 Sergio Ferreira do AMARAL 2 Mirela Campos AMARAL 3 Dirceu da SILVA 4 Universidade Estadual de Campinas, SP Resumo Este artigo descreve

Leia mais

DESENVOLVIMENTO DE APLICAÇÕES COM JAVA 2EE E UML

DESENVOLVIMENTO DE APLICAÇÕES COM JAVA 2EE E UML DESENVOLVIMENTO DE APLICAÇÕES COM JAVA 2EE E UML Jhonattan Vieira do Carmo, Ricardo Ribeiro Rufino Universidade Paranaense (Unipar) Paranavaí PR Brasil jhonattan_si@hotmail.com ricardo@unipar.br Resumo.

Leia mais

Java para Desenvolvimento Web Carga Horária: 40 Horas.

Java para Desenvolvimento Web Carga Horária: 40 Horas. Java para Desenvolvimento Web Carga Horária: 40 Horas. PROGRAMAÇÃO AULAS AOS SABADOS: Início : 20/08/2011 - Término: 17/09/2011 Horário: 8:30 as 12:30 13:30 ás 17:30. Pagamento em 6X no cartão ou cheque.

Leia mais

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare). 1 Introdução 1.1 Contextualização Recentemente, tem-se percebido um movimento de integração de comunidades físicas e comunidades virtuais. As pessoas utilizam cada vez mais a Internet para se comunicar

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

3 Uma Arquitetura Distribuída via WEB

3 Uma Arquitetura Distribuída via WEB 24 3 Uma Arquitetura Distribuída via WEB Neste capítulo será apresentada a Arquitetura de Ambiente Distribuído no qual está implementado o Gerador VRML (VRMLGer) e o fluxo de dados que há entre as diferentes

Leia mais

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior Introdução a Web Programação para a Internet Prof. Vilson Heck Junior Introdução Quer ter idéias? Quer vender algo? Talvez comprar? A Web é uma forma universal de comunicação, na qual você pode participar.

Leia mais

Ferramenta 1 -NetBeans 8.0

Ferramenta 1 -NetBeans 8.0 Nome do laboratório: Laboratório de Programação Ferramenta 1 -NetBeans 8.0 Elaborado por: Osmar de Oliveira Braz Junior Descrição NetBeans é um ambiente de desenvolvimento integrado (IDE Integrated Development

Leia mais