Sei sulla pagina 1di 69

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CINCIAS EXATAS E NATURAIS CURSO DE CINCIAS DA COMPUTAO BACHARELADO

PROTTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE

LARCIO LO PEDROZO HARDOCK

BLUMENAU 2008 2008/1-22

LARCIO LO PEDROZO HARDOCK

PROTTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE

Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau para a obteno dos crditos na disciplina Trabalho de Concluso de Curso II do curso de Cincias da Computao Bacharelado. Prof. Wilson Pedro Carli, Mestre - Orientador

BLUMENAU 2008 2008/1-22

PROTTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE

Por

LARCIO LO PEDROZO HARDOCK

Trabalho aprovado para obteno dos crditos na disciplina de Trabalho de Concluso de Curso II, pela banca examinadora formada por:

Presidente:

______________________________________________________ Prof. Wilson Pedro Carli, Mestre Orientador FURB ______________________________________________________ Prof. Adilson Vahldick, Especialista FURB ______________________________________________________ Prof. Evaristo Baptista, Mestre FURB

Membro:

Membro:

Blumenau, 09 de julho de 2008.

Dedico este trabalho minha famlia, pelo apoio que me deram do decorrer da realizao deste trabalho e a Maximiza, empresa na qual trabalho, por ter me possibilitado usar os recursos computacionais na realizao deste.

AGRADECIMENTOS

minha famlia, que me deu apoio na realizao deste trabalho. A Maximiza, empresa na qual trabalho, por ter me cedidos recursos computacionais para a realizao deste trabalho. Ao meu orientador, Wilson Pedro Carli, por ter acreditado na concluso deste trabalho.

"A mente que se abre a uma nova idia jamais voltar ao seu tamanho original." Albert Einstein

RESUMO

Este trabalho consiste no desenvolvimento de um prottipo de um sistema web para controle de projetos e tarefas, que tem por objetivo gerenciar as tarefas de projetos, bem como quem ir realiz-las. Para tanto, o presente trabalho foi desenvolvido baseando-se na arquitetura JEE, atravs das tecnologias JSF e JPA, o que permite que a aplicao possa ser executada em diversos servidores com suporte a JEE e a diversos bancos de dados que possuam um driver JDBC. Palavras-chave: Gerncia de projetos. Java. JSF. JPA.

ABSTRACT

This work consists on the development of a web system about project and task management. Therefore, the work was developed being based on the JEE architecture, using the JSF and JPA technologies. That make possible deploy the application in many web servers with JEE support and to those databases with JDBC drivers support. Key-words: Project management. Java. JSF. JPA.

LISTA DE ILUSTRAES

Figura 1 Mapeamento de componentes do JSF .................................................................. 20 Figura 2 Mapeamento entre o objeto Java e a tabela no banco de dados............................. 23 Quadro 1 Classe com mapeamento via anotaes .............................................................. 24 Figura 3 Cadastros do sistema ........................................................................................... 29 Quadro 2 Descrio do Caso de Uso Login ....................................................................... 30 Quadro 3 Descrio do Caso de Uso Manter empresa........................................................ 30 Quadro 4 Descrio do Caso de Uso Manter colaborador .................................................. 31 Quadro 5 Descrio do Caso de Uso Manter material........................................................ 31 Quadro 6 Descrio do Caso de Uso Manter categoria ...................................................... 31 Quadro 7 Descrio do Caso de Uso Manter projeto ......................................................... 32 Quadro 8 Descrio do Caso de Uso Manter atividade ...................................................... 32 Quadro 9 Descrio do Caso de Uso Manter item.............................................................. 33 Quadro 10 Descrio do Caso de Uso Associar material/item............................................ 33 Figura 4 Diagrama de classes das entidades....................................................................... 36 Figura 5 Mapeamento Objeto Relacional........................................................................... 37 Figura 6 Diagrama de atividade do fluxo de navegao do prottipo ................................. 38 Figura 7 Diagrama de seqncia para visualizao dos materiais....................................... 39 Figura 8 Diagrama de interao do acesso as telas do sistema ........................................... 40 Figura 9 Modelo das entidades do sistema......................................................................... 41 Quadro 11 - Configurao de uma aplicao JEE................................................................. 44 Quadro 12 - Configurao adicional para uma aplicao JSF ............................................... 44 Quadro 13 - Configurao do arquivo faces-config.xml do prottipo ................................... 45 Quadro 14 - Mtodo da classe MaterialView e componente JSF .......................................... 46 Quadro 15 Configurao do AJAX do prottipo................................................................ 47 Quadro 16 Configurao do JPA do prottipo ................................................................... 48 Quadro 17 Cdigo JSF para exibio de informao e botes de aes.............................. 49 Figura 10 Componente de visualizao de materiais e botes de aes .............................. 50 Quadro 18 Mtodos da classe MaterialModel para persistncia de materiais...................... 51 Quadro 19 Mtodos da classe MaterialDAO para persistncia de materiais ....................... 52 Figura 11 Dispositivos acessando a aplicao.................................................................... 53 Figura 12 Autentificao do usurio.................................................................................. 54

Figura 13 - Menu do prottipo ............................................................................................. 54 Figura 14 Tela de atividades visualizao de registros .................................................... 55 Figura 15 Tela de atividades edio de registros................................................................ 56 Figura 16 Tela de atividades insero de registros ........................................................... 57 Quadro 20 Telas da aplicao............................................................................................ 58 Figura 17 Cadastro de registros pelo gerente ..................................................................... 59 Figura 18 Concluso de uma atividade por um colaborador............................................... 59 Quadro 21 Tecnologias empregas na aplicao ................................................................. 60 Quadro 22 Comparativo entre prottipo e trabalhos correlatos .......................................... 62

LISTA DE SIGLAS

AJAX Asynchronous Javascript And XML API Application Programming Interface DOM Document Object Model EJB Enterprise JavaBeans HSQLDB Hypersonic SQL Database HTML HiperText Markup Language IDE Integrated Development Environment IU Interface de Usurio JDBC Java Database Connectivity JEE Java Enterprise Edition JPA Java Persistence API JSE Java Standart Edition JSF Java Server Faces RUP Rational Unified Process SQL Structured Query Language UML Unified Modeling Language XHTML eXtensive HiperText Markup Languague

SUMRIO

1 INTRODUO ............................................................................................................. 13 1.1 OBJETIVOS DO TRABALHO .................................................................................... 13 1.2 ESTRUTURA DO TRABALHO .................................................................................. 14 2 FUNDAMENTAO TERICA ................................................................................ 15 2.1 GERNCIA DE PROJETOS ......................................................................................... 15 2.1.1 Ciclo de vida de um projeto......................................................................................... 15 2.1.2 O papel do Gerente de Projetos ................................................................................... 16 2.1.2.1 Planejamento............................................................................................................ 16 2.1.2.2 Recursos Humanos e Materiais................................................................................. 16 2.1.2.3 Acompanhamento dos Projetos................................................................................. 17 2.2 JEE E JSF ...................................................................................................................... 17 2.2.1 JPA ............................................................................................................................. 22 2.2.1.1 Provedores JPA ........................................................................................................ 22 2.2.1.2 Mapeamento Objeto/Relacional................................................................................ 21 2.3 BANCO DE DADOS ORACLE E HSQLDB................................................................. 25 2.4 TRABALHOS CORRELATOS ..................................................................................... 25 3 DESENVOLVIMENTO................................................................................................ 27 3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ..................... 27 3.1.1 REQUISITOS FUNCIONAIS ..................................................................................... 27 3.1.2 REQUISITOS NO FUNCIONAIS............................................................................ 28 3.2 ESPECIFICAO........................................................................................................ 28 3.3 DIAGRAMA DE CASO DE USO ................................................................................. 29 3.4 DIAGRAMA DE CLASSE ............................................................................................ 36 3.5 DIAGRAMA DE ATIVIDADE ..................................................................................... 38 3.6 DIAGRAMA DE SEQUNCIA .................................................................................... 39 3.7 DIAGRAMA DE INTERFACE ..................................................................................... 40 3.8 MODELO ENTIDADE RELACIONAMENTO DA BASE DE DADOS ....................... 41 3.9 IMPLEMENTAO ..................................................................................................... 42 3.9.1 Tcnicas e ferramentas utilizadas ................................................................................ 42 3.9.2 Implementao do Prottipo........................................................................................ 43 3.9.2.1Configurao do JSF ................................................................................................. 43

3.9.2.2 Configurao do AJAX ............................................................................................ 46 3.9.2.3 Configurao da JPA................................................................................................ 47 3.9.2.4 Exemplo da implementao de uma tela da aplicao ............................................... 48 3.9.3 Operacionalidade da implementao ........................................................................... 53 3.9.3.1 Estudo de caso Gerente cria uma atividade para um colaborador executar ............. 55 3.9.3.1.1 Cadastro de empresas ............................................................................................ 56 3.9.3.1.2 Cadastro de colaboradores ..................................................................................... 56 3.9.3.1.3 Cadastro de projetos e atividades ........................................................................... 56 3.9.3.1.4 Cadastro de itens de uma atividade e materiais ...................................................... 58 3.9.3.1.5 Colaborador verifica suas atividades...................................................................... 60 3.10 RESULTADOS E DISCUSSO .................................................................................. 61 4 CONCLUSES ............................................................................................................. 65 4.1 EXTENSES ............................................................................................................... 66 REFERNCIAS BIBLIOGRFICAS .............................................................................. 67

13 1 INTRODUO

A gesto de projetos e de tarefas realizadas por empresas e indivduos torna-se cada vez mais complexa, exigindo o controle de diversas etapas (iniciao, planejamento, execuo, controle e encerramento do projeto), que visam a resoluo de um determinado objetivo. O risco de fracasso de um projeto aumenta de acordo com a presena de incerteza durante todos os estgios do projeto, em razo disto, a funo do gerenciamento de projetos manter os riscos de fracasso em um nvel to baixo quanto necessrio durante o ciclo de vida do projeto, tendo como funo definir e alcanar objetivos ao mesmo tempo em que se otimiza o uso de recursos tais como tempo, dinheiro, pessoas, espao, dentre outros. Por conseguinte, o objetivo deste trabalho a apresentao de um Sistema Gerenciador de Projetos que facilite o controle de projetos e tarefas a serem realizadas por um usurio ou grupo de pessoas. A aplicao tem diversos mdulos, tais como: cadastros de colaboradores, de empresas, de projetos, atividades e itens de atividades a serem realizados e mdulo de acompanhamento de projetos pelo gestor responsvel e pelos colaboradores que iro realizar as tarefas. Para o desenvolvimento do sistema utiliza-se a linguagem de programao Java e a arquitetura de desenvolvimento de aplicaes para a web Java Enterprise Edition (JEE). Tambm utiliza-se o Java Server Faces (JSF), um framework que separa o cdigo da aplicao em diferentes camadas, separando a parte visual dos cdigos das regras de negcios. Para a persistncia dos dados utilizado a Java Persistence API (JPA), que permite persistir os dados em bancos de dados diversos atravs da utilizao de objetos em Java sem que seja necessria a utilizao da Structured Query Language (SQL) para persistncia das informaes. Os bancos de dados utilizados para armazenar os dados persistidos pela JPA so o Oracle 10g Express Edition e o Hypersonic SQL Database (HSQLDB).

14 1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho o desenvolvimento de um prottipo de um sistema web em Java que possibilite que o usurio possa administrar projetos e atividades diversas. Os objetivos especficos do trabalho so: a) desenvolver um mdulo para manter e controlar projetos; b) manter informaes sobre empresas e colaboradores; c) delegar atividades aos usurios colaboradores; d) implementar um aplicativo para acompanhar colaboradores; e) implementar um aplicativo que permita que o colaboradores possam acompanhar o andamento dos projetos; f) desenvolver um mdulo que mostre a informao do custo previsto e do custo real de um projeto, com base no custo de hora trabalhada dos colaboradores que executam as atividades. as tarefas delegadas aos

1.2 ESTRUTURA DO TRABALHO

O trabalho est organizado em quatro captulos. O captulo 1 apresenta uma breve introduo sobre o trabalho e os principais objetivos pretendidos. No captulo 2 apresentada a fundamentao de alguns assuntos e tecnologias que so relevantes para o entendimento deste trabalho. Entre eles esto o conceito de gerncia de projetos, as tecnologias JEE, JSF, JPA e bancos de dados utilizados no trabalho. No captulo 3 detalhado o desenvolvimento do trabalho descrevendo os requisitos do sistema, especificao da sua estrutura, os passos para publicao do sistema e um caso de uso sobre a operacionalidade do prottipo desenvolvido. Por fim so apresentados os resultados obtidos. No ltimo captulo so apresentadas as concluses e sugestes para trabalhos futuros.

15 2 FUNDAMENTAO TERICA

Neste captulo so apresentados os conceitos de Gerncia de Projetos e sua relevncia para o sucesso na administrao de tarefas a serem realizadas. Tambm so vistas as tecnologias que so essenciais para o entendimento do desenvolvimento do trabalho e os trabalhos correlatos.

2.1

GERNCIA DE PROJETOS

Um projeto pode ser considerado como um empreendimento que tem a finalidade de atingir o objetivo de produzir um produto ou servio, levando em considerao diversos fatores como tempo, custo, recursos envolvidos e qualidade (VIEIRA, 2003, p. 5). Todo projeto tem uma ou mais metas a atingir e devem ser divididas em tarefas a serem executadas por uma seqncia clara e lgica de eventos. Para a execuo das diversas tarefas que possam a vir a serem criadas, deve-se selecionar os recursos humanos e materiais necessrios a execuo das diversas atividades a fim de que as metas estabelecidas sejam alcanadas.

2.1.1 Ciclo de vida de um projeto

Para a execuo de um projeto e sua concluso h diversos fatores a serem observados, como tempo, custo e recursos humanos e materiais. Segundo Dinsmore (2005, p. 3), os processos de gerenciamento de projetos podem ser classificados em cinco grupos: a) iniciao incio formal do projeto, sendo elaborados as verses iniciais de oramento, cronogramas, proposta inicial e escolha da equipe de projeto; b) planejamento elaborao com maior nvel de detalhes da etapa anterior (oramento e cronograma) e desenvolvimento e teste dos prottipos iniciais; c) execuo os planos propostos so postos em prtica; d) monitoramento / controle acompanhamento das tarefas propostas; e) encerramento entrega do produto ou servio produzido.

16

Aps a concluso do conjunto de etapas, um produto ou servio obtido, tendo-se assim alcanado o objetivo proposto.

2.1.2 O papel do Gerente de Projetos

De acordo com Vieira (2003, p. 23), um gerente de projetos tem diversas tarefas que deve ter sobre seu controle, tais como o planejamento, a escolha dos recursos humanos e materiais e o acompanhamento dos projetos sobre seu controle. Para que o gerente de projeto possa exercer sua funo, ele deve possuir uma srie de habilidades de administrao geral: a) liderana; b) comunicao; c) negociao; d) soluo de problemas; e) Influncia na organizao. Um gerente de projetos deve ter acuidade com o planejamento, com recursos humanos e materiais e com o acompanhamento dos projetos.

2.1.2.1 Planejamento

O gerente de projetos deve definir o cronograma das atividades, atentando para os custos e prazos e objetivos dos projetos. Para tanto deve ter em mo os requisitos do projeto, o oramento disponvel e os recursos humanos e materiais disponveis para que possa assim montar a equipe do projeto a ser executado e assim criar e distribuir as tarefas entre os colaboradores da equipe.

2.1.2.2 Recursos Humanos e Materiais

Para que as tarefas programadas possam ser executadas adequadamente muito

17 importante que sejam escolhidos os recursos humanos e materiais para a correta execuo das atividades. Para cada projeto o gerente dever escolher a equipe de colaboradores que melhor preencha os requisitos para realizao das tarefas a serem executadas, tendo como objetivo a qualidade, o custo e o prazo do projeto.

2.1.2.3 Acompanhamento dos Projetos

O gerente de projetos deve acompanhar o desenvolvimento das etapas do projeto, atentando para os prazos, custos e qualidade do projeto. Conforme Vieira (2003, p. 103), h diversos processos de controle que um gerente deve acompanhar ao longo do projeto, sendo eles: a) relatrio de progresso; b) previses em termos de situao atual e andamento; c) verificao de escopo processo de formalizao do aceite do escopo do projeto por todos os envolvidos; d) controle de mudanas do escopo; e) controle do cronograma; f) controle de custo; g) controle de qualidade; h) controle de resposta a riscos. Os processos de controle do projeto so importantes para a conduo do projeto, pois possibilitam que o gerente de projetos tome as decises corretas para que o projeto termine de acordo com seu cronograma e metas.

2.2

JEE E JSF

Conforme SUN (2008a), JEE a especificao do Java para o desenvolvimento de aplicaes para a Internet. Utiliza-se a plataforma Java para possibilitar o desenvolvimento de aplicaes portteis, robustas, escalveis e seguras. Para o desenvolvimento de aplicaes JEE foi utilizado o padro de desenvolvimento Java Server Faces (JSF) proposto pela empresa

18 Sun Microsystems. O objetivo do JSF, segundo SUN (2008b), criar um padro para aplicaes web, visando simplificar a construo de interfaces de usurio, possibilitando que componentes de interface com o usurio sejam reaproveitadas. Segundo Geary (2005, p. 3), pode-se dividir o JSF em trs partes: a) um conjunto de componentes de Interface de Usurio (IU) pr-desenvolvidos; b) um modelo de programao dirigido a eventos; c) um modelo de componentes que permite a desenvolvedores independentes fornecerem componentes adicionais. No JSF h uma separao entre as camadas de visualizao, programao das funcionalidades da aplicao (camada de negcio) e navegao entre as diversas telas. A camada de visualizao construda com componentes JSF, conforme descrito anteriormente, a camada de negcio (manipulao da lgica da aplicao) definido atravs do uso de JavaBeans (classes Java) e a navegao entre telas definida atravs do configurao de um arquivo eXtensible Markup Language (XML). A camada de visualizao disponibiliza alguns componentes de IU para utilizao para a construo de telas. Cada componente HiperText Markup Language (HTML) possui um componente correspondente prprio para utilizao com o JSF. O componente da HTML para entrada de dados <input type=TEXT> possui no JSF o seu equivalente <h:inputText>. Para o desenvolvimento de aplicaes necessrio utilizar as tags JSF em vez das tags HTML. Alm desses componentes possvel desenvolver componentes novos para utilizao nas aplicaes, tais como menus, componentes de upload de imagens, visualizao de registros de um banco de dados. A programao semelhante da camada de visualizao semelhante a programao com HTML, porm utilizando os comandos do JSF. Conforme Burke e Monson-Haefel (2007), para a camada de negcios utiliza-se JavaBeans (classes Java com mtogos get e set para acesso as variveis), onde os componentes da camada de visualizao fazem referncia as camadas de negcios atravs dos mtodos get e set e atravs dos mtodos disponveis da camada de negcios. Por exemplo, os componentes de um formulrio, como um campo de entrada de dados, devem referenciar um mtodo get de um JavaBean. O JavaBean quando utilizada na funo de tratar a camada de negcios de uma aplicao JSF chamado de ManagedBean, devido a ter a funo de gerenciar a camada de negcios. No ManagedBean pode ter outros mtodos, como mtodos de validao de dados, captura de informaes de um banco de dados, converso de valores, armazenamento das informaes de uma tela e outros. O ManagedBean usado para tratar os eventos ocorridos na camada de visualizao,

19 isto , quando ocorre aes como selecionar um campo numa lista de valores, apertar um boto numa tela, um mtodo no ManagedBean ativado. Nesse momento, o fluxo de dados passado para o ManagedBean, que executa a lgica de negcios e em seguida renderizado novamente a camada de visualizao com os dados processados. O processo de navegao entre pginas feito atravs da configurao do arquivo XML faces-config.xml. Este arquivo alm de configurar o fluxo de navegao, permite disponibilizar os ManagedBean para que sejam acessados pela camada de visualizao, permitindo que a camada de visualizao e a camada de negcios possam trocar informaes. Na Figura 1 pode-se ver como mapeada a informao entre a camada de visualizao, de negcios e de controle. O componente <h:inputText> acessa a varivel email atravs do mtodo getEmail() e setEmail() do ManagedBean OlaMundoMB. O ManagedBean disponibilizado para a camada de visualizao atravs do arquivo de configurao faces-config.xml, onde informado que a classe OlaMundoMB estar disponvel aplicao pelo nome OlaMundoMB.

20

Fonte: Globalcode (2008).

Figura 1 Mapeamento de componentes do JSF

O JSF possui suporte a Asynchronous Javascript And XML (AJAX) atravs das bibliotecas AJAX4JSF (JBOSS, 2008a) e RichFaces (JBOSS, 2008b). Segundo Gonalves

21 (2007, p. 589), o AJAX no uma tecnologia e sim o uso de diversas tecnologias, como o JavaScript, HTML, eXtensible Hyper-Text Markup Language (XHTML) e Document Object Model (DOM). O uso conjunto dessas tecnologias capaz de tornar o navegador web mais interativo, exigindo menos recarregamento das telas. Com o uso de AJAX possvel atualizar apenas um fragmento da tela, no sendo necessrio atualizar a tela inteira.

2.2.1 JPA

A persistncia de dados crtica para a maioria das aplicaes porque requerido acesso a uma base relacional como o HSQLDB, MySQL, Derby, entre outros. O dialeto da SQL entre um banco de dados e outro pode conter algumas diferenas, o que dificulta a transio de uma aplicao de um sistema de banco de dados para outro. A linguagem Java orientada a objetos, enquanto que o banco de dados funciona de modo completamente diferente. Em razo das diferenas de sintaxe entre os diversos bancos de dados relacionais e da diferena no modo na utilizao da linguagem Java e na manipulao do banco de dados, foram criados diversos mecanismos de persistncia orientado-relacional, dentre os quais podese citar: a) JBoss Hibernate; b) Oracle Toplink Essentials. Conforme Gonalves (2007, p. 544), o TopLink Essentials a implementao de referncia da EJB 3.0 Java Persistence API, e o Hibernate um framework open-source e muito utilizado pela comunidade de desenvolvimento Java. Embora existam inmeros mecanismos de persistncia orientado a objeto, no h nenhum mecanismo de persistncia padro para a plataforma Java que pode ser usado tanto no ambiente Java EE e no Java SE. Em razo disso foi criado o padro EJB3 Java Persistence API (JPA) para padronizar a persistncia de dados na plataforma Java. Segundo a Sun (2007), o JPA uma especificao para persistncia de dados atravs do uso de objetos em Java. A JPA foi acrescentada API do framework de persistncia Enterprise Java Beans (EJB), tornando assim a programao com EJB (na verso EJB3) mais simplificada e tornando-se um padro para persistncia objeto/relacional.

22 2.2.1.1 Provedores JPA

A JPA parte da especificao EJB 3.0 - JSR-220 (JCP, 2008), e padroniza o mapeamento objeto/relacional em Java. Com a especificao JPA, diversos provedores de API de mapeamento objeto/relacional como o Oracle Toplink e o Hibernate, podem implementar a especificao e liberar uma API de persistncia de acordo com a especificao. Uma aplicao Java (JSE ou JEE) utiliza a JPA e esta se encarrega de fazer a conexo com o banco de dados. A JPA faz parte da especificao JSR 220 EJB3, e necessita de modo semelhante ao JDBC, de um provedor JPA que implemente a especificao. H diversas implementaes da JPA, como Hibernate, Kodo, OpenJPA, TopLink, sendo esta ltima a implementao de referncia. O provedor responsvel por utilizar da API JDBC para manipular informaes no banco de dados, utilizando para isso o driver JDBC para o banco de dados utilizado (BELLIA, 2007).

2.2.1.2 Mapeamento Objeto/Relacional

As classes para a persistncia de dados so chamadas de entidades e so classes Java simples, com mtodos get e mtodos set. Para a persistncia das informaes tem-se que mapear uma classe do tipo entidade para a tabela correspondente do banco de dados, conforme mostrado na Figura 2.

23

Fonte: Sacramento (2008).

Figura 2 Mapeamento entre o objeto Java e a tabela no banco de dados

H dois modos de mapear uma classe a uma tabela no banco de dados. A primeira atravs de metadados atravs do uso de anotaes nas classes de entidades, conforme o Quadro 1. Como se mostra no Quadro 1, pode-se ver que a anotao mapeia a classe Message para a tabela MESSAGES.

@Table(name="MESSAGES")

Assim feito com as variveis que podem ser mapeadas como colunas de uma tabela. Outra forma de mapear as classes de entidade atravs de um arquivo de mapeamento em que se mapeia todas as entidades e que geralmente o arquivo orm.xml.

24
package hello; import javax.persistence.*; @Entity @Table(name = "MESSAGES") public class Message { @Id @GeneratedValue @Column(name = "MESSAGE_ID") private Long id; @Column(name = "MESSAGE_TEXT") private String text; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "NEXT_MESSAGE_ID") private Message nextMessage; private Message() { } public Message(String text) { this.text = text; } public Long getId() { return id; } private void setId(Long id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public Message getNextMessage() { return nextMessage; } public void setNextMessage(Message nextMessage) { this.nextMessage = nextMessage; }}

Fonte: Bauer e King (2007, p. 69).

Quadro 1 Classe com mapeamento via anotaes

25 2.3 BANCO DE DADOS ORACLE E HSQLDB

Segundo Carmo (2008), a JPA pode utilizar diversos bancos de dados, bastando alterar o arquivo persistence.xml e disponibilizar o driver do banco de dados. O banco de dados Oracle possui uma verso gratuita (Oracle 10G Express) que pode ser utilizada em aplicaes de menor porte (ORACLE, 2008). O HSQLDB um banco de dados com recursos avanados, que aliada a baixa demanda por recursos computacionais e simplicidade de instalao e configurao, tornandose um bom mecanismo de persistncia de dados (THE HSQLDB DEVELOPER GROUP, 2008). O HSQLDB um banco de dados freeware, podendo ser utilizado gratuitamente em aplicaes tanto de uso pessoal quanto profissional. Segundo Stephens (2003, p. 331), os bancos de dados possuem diferenas no dialeto da SQL, que faz com que determinados comandos apenas sejam interpretados por determinado banco de dados. Porm a JPA consegue interpretar essas diferenas, gerando o SQL especfico para o banco de dados selecionado.

2.4

TRABALHOS CORRELATOS

Foram avaliados dois trabalhos similares ao trabalho proposto, um desenvolvido em Java e o outro em Oracle Forms/Reports. Melo (2000), desenvolveu um sistema de gerncia de projetos, porm voltado para controle de projetos de software baseado no Rational Unified Process (RUP). O sistema trata dos processos e das pessoas envolvidas no processo de desenvolvimento de software. realizado um estudo sobre o RUP e o prottipo desenvolvido possui os mdulos de atividades de projeto, recursos humanos, mtricas e de riscos do projeto. O aplicativo disponibiliza estas funcionalidades atravs de uma aplicao web, desenvolvida na plataforma JEE, utilizando a linguagem de programao Java. As pginas web so programadas atravs de JSP e os dados so persistidos no banco de dados Access. J Schumacker (2005), implantou uma aplicao em Oracle Forms/Reports na Bunge Alimentos S.A. para gesto de outsourcing. O trabalho apresenta a proposta de melhorar a gesto dos servios prestados por empresas de informtica que prestam servio para a Bunge.

26 O sistema controla o cadastro de profissionais, fornecedores, servios prestados, projetos e atividades concludas e abertas.

27 3 DESENVOLVIMENTO

Neste captulo tm-se as descries do sistema proposto, a metodologia aplicada, os requisitos funcionais e no funcionais, a modelagem entidade relacionamento (MER) do banco de dados. So apresentados os diagramas de casos de uso, diagrama de classes e de seqncia, a implementao da aplicao e demonstrao da parte operacional, bem como os resultados obtidos com o prottipo.

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

Na seqncia so apresentados os requisitos funcionais e no funcionais.

3.1.1 REQUISITOS FUNCIONAIS

Como requisitos funcionais tem-se: a) permitir o cadastro de colaboradores; b) permitir o cadastro de empresas; c) permitir o cadastro de materiais; d) os projetos devem estar relacionados a uma empresa; e) um projeto devem estar relacionados a um colaborador que ser responsvel pelo projeto; f) os projetos devem ter um colaborador responsvel pela sua execuo; g) cada projeto pode ter diversas atividades e cada atividade pode ter diversos itens; h) as atividades devem estar relacionadas ao colaborador que ir execut-la; i) a elaborao de projeto, atividade e item de atividade s pode ser criado pelos colaboradores que tiverem status de administrador do sistema como um todo ou de um determinado projeto; j) os usurios somente podero visualizar suas tarefas a serem feitas, no podendo visualizar outras tarefas que foram atribudas a outros colaboradores;

28 k) o usurio ao concluir uma atividade, deve informar atravs de um campo de status que a tarefa foi concluda; l) permitir agrupar as tarefas em categorias.

3.1.2 REQUISITOS NO FUNCIONAIS

Como requisitos no funcionais tem-se: a) a aplicao deve apresentar uma interface web, possibilitando que qualquer usurio acesse o sistema atravs de um navegador web; b) a aplicao deve suportar mltiplos usurios simultneos; c) a aplicao deve ser flexvel para utilizar bancos de dados relacionais diversos que tenham um driver JDBC disponvel; d) a aplicao deve manter compatibilidade com o navegador web Internet Explorer; e) utilizar Cascading Style Sheet (CSS) para a formatao do layout da aplicao web.

3.2 ESPECIFICAO

Utilizou-se para a especificao do projeto uma metodologia orientada a objetos, representada atravs de diagramas que fazem parte da Unified Modeling Language (UML), tendo como ferramenta de suporte a esta especificao a Enterprise Architect, que foi utilizada para a construo do diagrama de casos de uso, diagrama de classes e diagrama de atividades. Para a criao do modelo conceitual da base de dados foi utilizado a ferramenta DBDesigner.

29 3.3 DIAGRAMA DE CASO DE USO

Para melhor entendimento do sistema, foram elaborados trs diagramas de caso de uso, um para as dependncias entre os casos de uso, um para os cadastros e outro para as associaes entre os cadastros. Na Figura 3 tem-se o caso de uso sobre os cadastros do prottipo.

Figura 3 Cadastros do sistema

30 No Quadro 2 apresenta-se o caso de uso "Login".


Nome do Caso de Uso Descrio Ator Pr-condio Fluxo principal Login Usurio acessa aplicao via navegador Internet e informa dados para login e senha armazenados no cadastro do colaborador. Usurio Sistema deve estar hospedado no servidor web. Usurio deve estar cadastrado no banco de dados. 1. 2. 3. Fluxo alternativo (a) Usurio preenche seu login e sua senha; Sistema valida os dados de login e senha do usurio; Sistema direciona o Usurio para a pgina de menu do prottipo. Ps-condio nome de usurio e/ou senha invlido(s) alerta com mensagem usurio ou senha invlida mostrada.

Usurio entra conectado ao sistema.

Quadro 2 Descrio do caso de uso Login

No Quadro 3 apresenta-se o caso de uso "Manter empresa".


Nome do Caso de Uso Descrio Ator Pr-condio Fluxo principal Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Manter empresa Usurio acessa o link Empresa para manter dados de empresas. Sero mantidos os dados: nome da empresa, bairro, cidade, endereo, estado, telefone comercial e cep. Usurio Usurio deve fazer login no sistema. 1. 2. Sistema informa as empresas cadastradas; Usurio opta por editar, apagar ou cadastrar uma empresa; Sistema mostra os registros de empresas cadastradas para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra o nome, bairro, cidade, endereo, estado, telefone e cep da empresa para edio; Usurio altera registro e seleciona opo para atualizar os dados (nome, bairro, cidade, endereo, estado, telefone e cep); Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou uma empresa.

Quadro 3 Descrio do caso de uso Manter empresa

31 No Quadro 4 apresenta-se o caso de uso "Manter colaborador".


Nome do Caso de Uso Descrio Manter colaborador Usurio acessa o link Colaborador para manter dados de colaboradores. Sero mantidos os dados: bairro, cidade, descrio sobre o colaborador, endereo, estado, telefone comercial, nome, cep, valor de quanto ganha por hora. Dever ser informado em qual empresa o colaborador trabalha. Ator Pr-condio Fluxo principal Usurio Usurio deve fazer login no sistema. Sistema deve ter pelo menos uma empresa cadastrada. a) o sistema informa os colaboradores cadastrados; b) usurio opta por editar, apagar ou cadastrar um colaborador; c) ao optar por editar ou cadastrar, usurio deve associar uma empresa ao colaborador; Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Sistema mostra os registros de colaboradores cadastrados para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra o nome, descrio, bairro, cidade, endereo, estado, telefone, cep, valor por hora do colaborador para edio; Usurio altera registro e seleciona opo para atualizar os dados (nome, descrio, bairro, cidade, endereo, estado, telefone, cep, valor por hora); Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou um colaborador da empresa.

Quadro 4 Descrio do caso de uso Manter colaborador

No Quadro 5 apresenta-se o caso de uso "Manter material".


Nome do Caso de Uso Descrio Ator Pr-condio Fluxo principal Cenrio Visualizao Manter material Usurio acessa o link Material para manter dados dos materiais. Sero mantido a descrio do material. Usurio Usurio deve fazer login no sistema. a) o sistema informa os materiais cadastrados; b) usurio opta por editar, apagar ou cadastrar um material; Sistema mostra os registros de materiais cadastrados para o Usurio.

32
Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra a descrio do material para edio; Usurio altera registro e seleciona opo para atualizar a descrio do material; Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou um material.

Quadro 5 Descrio do caso de uso Manter material

No Quadro 6 apresenta-se o caso de uso "Manter categoria".


Nome do Caso de Uso Descrio Ator Pr-condio Fluxo principal Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Manter categoria Usurio acessa o link Categoria (Categoria das Atividades). Informa o tipo de categoria ao qual uma atividade pertence. Ser mantido a descrio da categoria. Usurio Usurio deve fazer login no sistema. a) o sistema informa as categorias cadastradas; b) usurio opta por editar, apagar ou cadastrar uma categoria; Sistema mostra os registros de categorias cadastradas para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra a descrio da categoria para edio; Usurio altera registro e seleciona opo para atualizar a descrio da categoria; Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou uma categoria.

Quadro 6 Descrio do caso de uso Manter categoria

33 No Quadro 7 apresenta-se o caso de uso "Manter projeto".


Nome do Caso de Uso Descrio Manter projeto Usurio acessa o link Projeto para manter dados de projetos. Sero mantidos os dados: descrio do projeto, observao, status de concluso indicando se finalizado ou no, oramento previsto para o projeto, prazo para termino do projeto. Dever informar a empresa ao qual o projeto pertence e o colaborador responsavel. Ator Pr-condio Fluxo principal Usurio Usurio deve fazer login no sistema. Sistema deve ter pelo menos uma empresa cadastrada. a) o sistema informa os projetos cadastrados; b) usurio opta por editar, apagar ou cadastrar um projeto; c) ao optar por editar ou cadastrar, usurio deve associar uma empresa ao projeto; Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Sistema mostra os registros de projetos cadastrados para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra descrio do projeto, observao, status, oramento previsto proeteo para edio; Usurio altera registro e seleciona opo para atualizar os dados (descrio do projeto, observao, status, oramento previsto do projeto); Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou um projeto da empresa.

Quadro 7 Descrio do caso de uso Manter projeto

No Quadro 8 apresenta-se o caso de uso "Manter atividade".


Nome do Caso de Uso Descrio Manter atividade Usurio acessa o link Atividade (Atividade do Projeto) para manter dados das atividades que um projeto possui. Sero mantidos os dados: descrio da atividade, observao, status de concluso da atividade. Ator Pr-condio Usurio Usurio deve fazer login no sistema. Sistema deve ter pelo menos uma empresa cadastrada. Sistema deve ter pelo menos um projeto cadastrado. Informar o tipo de categoria da atividade e o funcionrio encarregado de realizar a atividade.

34
Fluxo principal a) o sistema informa as atividades cadastradas; b) usurio opta por editar, apagar ou cadastrar uma atividade; c) ao optar por editar ou cadastrar, usurio deve associar uma empresa e um projeto atividade; Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. 5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Sistema mostra os registros de atividades cadastrados para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra a descrio da atividade, nome do projeto ao qual pertence, observao, status da atividade para edio; Usurio altera registro e seleciona opo para atualizar os dados (descrio da atividade, observao, status); Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou uma atividade do projeto.

Quadro 8 Descrio do caso de uso Manter atividade

No Quadro 9 apresenta-se o caso de uso "Manter item".


Nome do Caso de Uso Descrio Manter item Usurio acessa o link Item (Item da Atividade). Cada atividade poder ter diversos itens associados. Sera mantido a descrio do item da tarefa a ser realizado, sendo que o item dever ser associado a uma atividade. Cada item pode ter diversos materiais associados que sero necessrios para a realizao do trabalho a ser feito. Ator Pr-condio Usurio Usurio deve fazer login no sistema. Sistema deve ter pelo menos uma empresa cadastrada. Sistema deve ter pelo menos um projeto cadastrado. Sistema deve ter pelo menos uma atividade cadastrada. Fluxo principal a) o sistema informa os itens da atividade cadastrados; b) usurio opta por editar, apagar ou cadastrar um item; c) ao optar por editar ou cadastrar, usurio deve associar uma atividade ao item; Cenrio Visualizao Cenrio Edio 1. 2. 3. 4. Sistema mostra os registros de itens das atividades cadastrados para o Usurio. Sistema mostra registros cadastrados; Usurio seleciona um registro para edio; Sistema mostra a descrio do item e a atividade a qual pertence para edio; Usurio altera registro e seleciona opo para atualizar a descrio do item;

35
5. Cenrio Incluso 1. 2. 3. Cenrio Excluso 1. 2. 3. Ps-condio Sistema mostra os registros cadastrados com o registro alterado. Sistema mostra registros cadastrados; Usurio inclui um novo registro; Sistema mostra os registros cadastrados. Sistema mostra registros cadastrados; Usurio seleciona um registro para excluso; Sistema exclui o registro e mostra os registros restantes.

Usurio visualizou, editou, apagou ou cadastrou um item da atividade.

Quadro 9 Descrio do caso de uso Manter item

No Quadro 10 apresenta-se o caso de uso "Associar material/item".


Nome do Caso de Uso Descrio Associar material/item Usurio acessa o link Material da tela de Item da Atividade para associar os materiais usados por um item. Um item pode ter vrios materiais, ento deve-se associar um material a um item. Ator Pr-condio Usurio Usurio deve fazer login no sistema. Sistema deve ter pelo menos uma empresa cadastrada. Sistema deve ter pelo menos um projeto cadastrado. Sistema deve ter pelo menos uma atividade cadastrada. Sistema deve ter pelo menos um item da atividade cadastrado. Sistema deve ter pelo menos um material cadastrado. Fluxo principal a) o sistema informa os materiais de um item cadastrados; b) usurio opta por desassociar ou associar um material a um item; c) ao optar por editar ou cadastrar, usurio deve associar uma atividade ao item; Cenrio Associar 1. 2. 3. 4. Cenrio Desassociar 1. 2. 3. 4. Ps-condio Sistema mostra registros cadastrados de itens para o usurio; Usurio seleciona um registro de um item; Usurio associa materiais ao item selecionado; Sistema mostra os registros de itens cadastrados e de seus materiais. Sistema mostra registros cadastrados de itens para o usurio; Usurio seleciona um registro de um item; Usurio seleciona um material do item e desassocia; Sistema mostra os registros de itens cadastrados e de seus materiais.

Usurio associou um material a um item de uma atividade.

Quadro 10 Descrio do caso de uso Associar material/item

36 3.4 DIAGRAMA DE CLASSES

Na Figura 4 se apresenta o diagrama de classes com as classes que representam as entidades sero persistidas no banco de dados. Cada classe de entidade representada no banco de dados como uma tabela.

Figura 4 Diagrama de classes das entidades

A funo de cada classe de entidade est descrita a seguir: a) classe Empresa - classe que possui os atributos referentes as empresas do sistema; b) classe Colaborador - classe que possui os atributos referentes aos colaboradores de uma empresa; c) classe Categoria - classe que possui os atributos referentes aos tipos de categoria; d) classe Material - classe que possui os atributos referentes aos materiais a serem utilizados pelos itens das atividades;

37 e) classe Projeto - classe que possui os atributos referentes aos projetos de uma empresa; f) classe Atividade - classe que possui os atributos referentes s atividades de um projeto; g) classe Item - classe que possui os atributos referentes aos itens de uma atividade. Cada classe que representa uma entidade convertida pela JPA em uma tabela de banco de dados. Na Figura 5 tem-se a classe Material e a tabela Material. A anotao @Entity informa que a classe do tipo entidade e a anotao @Table(name="MATERIAL") nforma o nome da tabela que dever ser criada no banco de dados.

Figura 5 Mapeamento objeto relacional

38 3.5 DIAGRAMA DE ATIVIDADES

No diagrama de atividade da Figura 6 mostra-se o fluxo de navegao do prottipo.

Figura 6 Diagrama de atividade do fluxo de navegao do prottipo

39 3.6 DIAGRAMA DE SEQNCIA

Na Figura 7 pode-se observar um diagrama de seqncia que descreve a seqncia de passos realizados para que um usurio possa visualizar os materiais da tela de Material.

Figura 7 Diagrama de seqncia para visualizao dos materiais

40

3.7 DIAGRAMA DE INTERFACE

Na Figura 8 pode-se observar um diagrama de interface que descreve as telas que cada usurio tem permisso para acessar.

Figura 8 Diagrama de interao do acesso as telas do sistema

41 3.8 MODELO ENTIDADE RELACIONAMENTO DA BASE DE DADOS

O prottipo utiliza uma base de dados para armazenar os dados do sistema. Na Figura 9 pode-se observar o modelo entidade relacionamento das entidades que sero persistidos no banco de dados.

Figura 9 Modelo das entidades do sistema

42 A base de dados possui oito tabelas conforme descrito abaixo: a) tabela de empresa - nesta tabela ficam armazenados os dados de todos as empresas do sistema; b) tabela de colaborador - nesta tabela ficam armazenados os dados de todos as colaboradores das empresas - cada colaborador associado a uma empresa; c) tabela de material - nesta tabela ficam armazenados os dados de todos as materiais; d) tabela de categorias - nesta tabela ficam armazenados os dados de todos as categorias. As categorias definem o tipo da atividade; e) tabela de projeto - nesta tabela ficam armazenados os dados de todos as projetos cada projeto associado a uma empresa; f) tabela de atividade - nesta tabela ficam armazenados os dados de todas as atividades - cada atividade associado a um projeto. Uma atividade pode ter diversos itens associados; g) tabela de item - nesta tabela ficam armazenados os dados de todos os itens de uma atividade - cada item associado a uma atividade de um projeto. Um item representa uma tarefa a ser realizada; h) tabela de item_material - nesta tabela ficam armazenados os dados dos materiais que cada item possui. Um item representa uma tarefa a ser realizada, e essa tarefa pode necessitar de materiais para sua execuo.

3.9 IMPLEMENTAO

Nas sees seguintes so mostradas as tcnicas e ferramentas utilizadas para o desenvolvimento deste trabalho e a operacionalidade da implementao.

3.9.1 Tcnicas e ferramentas utilizadas

Para implementao do sistema web, foi utilizado a linguagem de programao Java e a plataforma JEE. Foram utilizadas as tecnologias JSF, RichFaces, Ajax4JSF e JPA da linguagem de programao Java. A JSF permite a separao da aplicao em camadas distintas para a visualizao da tela e para a programao da camada de negcios, enquanto

43 que as API(s) RichFaces e Ajax4JSF permitem o desenvolvimento de aplicaes web mais dinmicas atravs do uso de AJAX. Por fim, para a persistncia dos dados foi utilizado a API JPA, que permite a persistncia de classes de entidade em um banco de dados relacional. Para a modelagem da aplicao foi utilizado a ferramenta DBDesigner para modelao do banco de dados e a ferramenta Enterprise Architect para modelar os diagramas de casos de uso, classe, atividade, seqncia e de interface. Para programao em Java foi utilizado a Integrated Development Environment (IDE) NetBeans (NETBEANS.ORG, 2008) e o servidor Apache Tomcat (APACHE GROUP, 2008) para hospedar a aplicao. Para a persistncia dos dados fui utilizado os bancos de dados Oracle, MySQL e HSQLDB.

3.9.2 Implementao do Prottipo

Nesta sesso mostra-se as configuraes do prottipo e estrutura e cdigos principais da aplicao.

3.9.2.1 Configurao do JSF

A configurao do JSF realizada em um arquivo no formato texto chamado web.xml, localizado no WEB-INF da aplicao web. Neste arquivo, a configurao ajustada para que os arquivos com a extenso jsf sejam controlados pelo JSF, atravs da classe javax.faces.webapp.FacesServlet. Isto significa que sempre que um arquivo com a extenso jsf for chamado, o controle de fluxo dos dados da aplicao ficar a cardo do servlet FacesServlet. Tambm necessrio a criao do arquivo faces.config.xml, localizado no diretrio WEB-INF. Esse arquivo contm as informaes sobre o fluxo de navegao da aplicao e das classes da camada de negcios. No Quadro 11 tem-se o cdigo do arquivo web.xml de uma aplicao JEE que no utiliza JSF e no Quadro 12 tem-se o cdigo que se deve acrescentar para se ter suporte a JSF.

44

Quadro 11 - Configurao de uma aplicao JEE

O arquivo "web.xml" esta informando que a sesso se encerra em 30 segundos e que a pgina inicial da aplicao web o arquivo "index.jsp".

Quadro 12 - Configurao adicional para uma aplicao JSF

O Quadro 13 mostra o arquivo faces.config.xml com um exemplo de fluxo de navegao e uma classe Java disponvel para uso pela camada de negcios.

45

Quadro 13 - Configurao do arquivo faces-config.xml do prottipo

No arquivo faces.config.xml temos uma classe Java que utilizada na aplicao e um fluxo de navegao. As classes Java disponibilizadas neste arquivo so chamadas de ManagedBean. Os mtodos desta classe ficam disponveis para a camada de visualizao atravs do nome
materialView,

que

corresponde

classe

web.jsf.model.MaterialModel.

O Quadro 9 mostra dois mtodos da classe materialView

e no Quadro 14 mostrado como acessar um mtodos atravs de um componente JSF da camada de visualizao.

46

Quadro 14 - Mtodo da classe MaterialView e componente JSF

O mtodo getTodos() responsavel por trazer a informao de todos o registros de materiais persistidos no banco de dados. A classe disponibilizado na aplicao com o nome de
materialView,

mtodo

esta

sendo

acessando

atravs

do

comando

#{materialView.todos}.

3.9.2.2 Configurao do AJAX

O arquivo web.xml responsvel por conter a configurao da API AJAX RichFaces. O Quadro 15 mostra as configuraes de configurao do AJAX no arquivo web.xml.

47

Quadro 15 Configurao do AJAX do prottipo

3.9.2.3 Configurao da JPA

A configurao do JPA realizada pelo arquivo persistence.xml que se encontra no pasta


WEB-INF/classes/META-INF.

O Quadro 16 mostra o cdigo do arquivo de

configurao. O arquivo de configurao informa a localizao e o driver do banco de dados e o usurio e senha para conexo.

48

Quadro 16 Configurao do JPA do prottipo

3.9.2.4 Exemplo da implementao de uma tela da aplicao

Cada tela possui os recursos de menu de navegao, visualizao dos registros cadastrados, cadastro, edio e excluso de registros. Todos os recursos de edio de dados so implementados atravs do uso de AJAX, o que faz com que no seja necessrio ter diversos arquivos para cada uma dessas funes e tambm com que no seja necessrio recarregar toda a tela para atualizao dos dados da tela. O JSF faz a separao da camada de visualizao da camada de regras de negcios. Na camada de visualizao utilizado um arquivo JSP com suas respectivos comandos e tambm os comandos AJAX. Esse arquivo nico contm todo o cdigo visual para visualizao, cadastro, edio e excluso de registros. O Quadro 17 mostra a parte do cdigo que mostra os registros da tela de materiais e os componentes para edio, excluso e cadastro de registro. O resultado da execuo do cdigo mostrado na Figura 10.

49

Quadro 17 Cdigo JSF para exibio de informao e botes de aes

50

O comando value="#{materialView.todos}" var="item" responsvel por acessar o mtodo getTodos() da classe MaterialModel. A classe Material contm todas as regras de negcio da aplicao. Esse mtodo por sua vez, executa o mtodo
getTodosRegistroS()

da classe MaterialDAO. A classe MaterialDAO responsvel por

encapsular toda a lgica de persistncia dos materiais no banco de dados, utilizando para isso a API JPA. No Quadro 18 mostram-se os mtodos para visualizao, incluso, atualizao e excluo de um registro da classe MaterialModel enquanto que no Quadro 19 mostra-se os mtodos correspondentes na classe MaterialDAO. A classe MaterialModel tem todos os mtodos referentes a tela de materiais, enquanto que a classe MaterialDAO tem somente os mtodos para a persistncia dos dados.

Figura 10 Componente de visualizao de materiais e botes de aes

51

Quadro 18 Mtodos da classe MaterialModel para persistncia de materiais

52

Quadro 19 Mtodos da classe MaterialDAO para persistncia de materiais

53 3.9.3 Operacionalidade da implementao

A aplicao web para poder ser acessada deve estar num servidor disponvel em uma rede de computadores ou na Internet. Os dispositivos que acessaram a aplicao tambm devem estar conectados a Internet e devem acessar o endereo eletrnico da aplicao que se encontra no servidor. O computador servidor hospedara a aplicao em um servidor web com suporte a JEE. A persistncia das informaes realizado em um banco de dados que pode estar instalado no mesmo computador do servidor web ou em algum outro computador. Na Figura 11 temos a representao do acesso de diversos dispositivos ao servidor com a aplicao.

Figura 11 Dispositivos acessando a aplicao

Para se ter acesso aplicao o usurio deve estar devidamente autorizado e autentificado pelo sistema. Para isso o usurio deve informar seu cdigo de usurio e sua senha conforme mostra a Figura 12. Aps a autentificao com sucesso, o usurio ser encaminhado para a tela de menu mostrado na Figura 13.

54

Figura 12 Autentificao do usurio

Figura 13 - Menu do prottipo

O usurio com permisso de gerente tem permisso para navegar para ver todo o menu, enquanto que para um usurio com permisso de colaborador apenas ter disponveis

55 as telas de Atividade e do Item da Atividade. Cada tela do prottipo tem as funcionalidades de visualizao, excluso, edio e insero de dados. No Quadro 20 tem-se a descrio das telas do prottipo. Tela Login Menu Empresa Colaborador Material Categoria Projeto Atividade Item acesso. Menu com links para todas as telas. Tela de cadastro de empresas. Tem como funo cadastra as empresas que tero projetos no sistema. Tela de cadastro dos usurios do sistema. So dois tipos de usurios, gerente e colaborador. Cadastros dos materiais que sero utilizados nos itens das atividades. Cadastros das categorias das atividades. Cada atividade deve ter uma categoria. Cadastros dos projetos das empresas. Cadastro das atividades dos projetos. Cadastro dos itens a serem executados para cada atividade de um projeto.
Quadro 20 - Telas da aplicao

Descrio Autentificao da aplicao. Cada colaborador possui uma senha para

3.9.3.1 Estudo de caso Gerente cria uma atividade para um colaborador executar

Um gerente deseja cadastrar uma atividade para ser realizada. Essa atividade ser desempenhada por um determinado funcionrio, com um determinado prazo. O gerente quer que a atividade tenha alguns itens. Para a realizao dos itens ser necessria a utilizao de alguns materiais.

56 3.9.3.1.1 Cadastro de empresas

Caso a empresa do gerente no esteja cadastrada, o gerente cadastra sua empresa e cadastra seu usurio nessa empresa. Dessa forma sempre que conectar ao sistema, seu usurio estar relacionado com a empresa onde trabalha. A cadastradas. Figura 14 mostra as empresas

Figura 14 Tela de empresas

3.9.3.1.2 Cadastro de Colaboradores

O gerente de projetos deve cadastrar os colaboradores da empresa para que esses possam ser vinculados a uma atividade.

3.9.3.1.3 Cadastro de projetos e atividades

Toda atividade para ser criada, necessita ser vinculada a um projeto. Ento antes de criar a atividade cria-se um projeto. Depois de criado o projeto, cria-se uma atividade para este projeto.

57 A Figura 14 mostra o cadastro de atividades de um projeto. O gerente pode visualizar uma atividade filtrando por projeto, colaborador, categoria. Nesta tela pode realizar as opes de visualizao, excluso do registro, edio ou incluso de uma nova atividade. Na Figura 15 mostra-se a incluso de uma atividade para um colaborador.

Figura 15 Tela de atividades visualizao de registros

Cada atividade possui uma categoria, que identifica o tipo de atividade. Conforme a Figura 14 mostra, as atividades do projeto so atividades do tipo Web, indicando que so projetos voltados para a Web. Na Figura 15 temos algumas categorias cadastradas pelo gerente.

Figura 16 Categorias cadastradas

58

Figura 17 Tela de atividades insero de registros

Para inserir um novo registro, clica-se no boto de insero. Aps a incluso do registro, somente a tabela de registros ser atualizada. Atividades inseridas podem ser editas ou apagas. Ao realizar as funes de incluso, edio ser aberta uma tela para preenchimento de dados enquanto que a tela de fundo se torna inacessvel at que se confirme ou se cancele o processo. As alteraes sero aplicadas sem que seja necessria uma atualizao da tela, apenas se atualizando na tela as partes que sero alteradas. Ao se excluir um registro apenas a tabela com os dados de registros ser atualizada, no necessitando atualizar a tela inteira. Isso ocorre devido ao recurso de AJAX.

3.9.3.1.4 Cadastro de itens de uma atividade e de materiais.

O gerente cadastra os itens de uma atividade que o colaborador ir executar e associa os materiais a serem utilizados na realizao da tarefa. Para cadastrar itens para uma atividade, o gerente seleciona uma atividade e seleciona a aba de itens da tela de atividade, adicionando itens para a atividade previamente

59 selecionada. Na Figura 14 mostra-se itens adicionados a uma atividade selecionada. Para adicionar materiais a um item, seleciona-se o item e clica-se na aba de materiais para adicionar os materiais ao item, como mostra-se na Figura 16.

Figura 18 Itens de uma atividade

Figura 19 Materiais de um item

60

3.9.3.1.5 Colaborador verifica suas atividades

Primeiramente o colaborador deve se autentificar no sistema, executando em seguida a tela de menu. O colaborador pode apenas ver e executar suas tarefas, ento ele acessa a tela de tarefas, onde ir ter as suas tarefas pendentes para execuo. Cada tarefa pode ter diversos itens para serem executados. Aps a concluso da atividade, o colaborador a conclui.

61

3.10 RESULTADOS E DISCUSSO

O prottipo deve persistir diferentes tipos de dados em um sistema de Banco de Dados. Inicialmente foram desenvolvidas as telas sem o uso de AJAX, e trs telas para cada tipo de cadastro. Uma para visualizao dos dados e que tambm permite a excluso, outra para edio de registros e por fim uma para incluso de registros. Isso faz com que ao se navegar de uma tela para outra seja feito carregado todas as informaes da tela. Com o uso de AJAX foi possvel realizar todas as tarefas de persistncia na mesma tela, sem que fosse necessrio atualizar toda a tela, apenas atualizando e exibindo informaes especificas. Os resultados com as tecnologias utilizadas e os resultados obtidos podem ser vistas no Quadro 21. Tecnologia/Metodologia Sistema para a web Foi utilizado Resultado obtido o navegador da Firefox e no desenvolvimento ao longo do aplicao testes diversos

espordicos no Internet Explorer. Ocorreram desenvolvimento problemas de diferenas na interface de layout da tela. As telas em Firefox e Internet Explorer possuem pequenas diferenas de layout. JSF Integrado o JSF ao JEE para separao das camadas de visualizao e regras de negocio. API. Procurou-se utilzar recurso de templates de telas, porm a API de templates se mostrou incompatvel com o servidor Tomcat 6 utilizado no desenvolvimento, devido a problemas de compatibilidade da API de JSF do NetBeans 6. Trocado a implementao de JSF foi solucianado o problema, porm foi

62 observado muitas diferenas de layout entre o Internet Explorer e o Firefox. Isso se deve porque o sistema de templates obriga que se utilize XHTML em toda a aplicao e h diferenas na renderizao dos componentes XHTML de um navegador para outro. Em razo disso no se utilizou templates. AJAX Integrado o AJAX ao JSF atravs da API RichFaces. Grande dificuldade no tratamento de eventos dos componentes e integrao com a camada de regras de negocio Documentao dos componetes. JPA Utilizou-se a implementao TopLink do JPA, por ser a implementao de referencia para a tecnologia. Dificuldade na interpretao de erros na programao em JPA. Mensagens de erro no muito intuitivas, em alguns casos mostrava um tipo de erro, porm o motivo do erro era outro. Para utilizao de outros bancos de dados necessrio apenas alterar o driver do banco de dados. BANCO DE DADOS Ao longo do desenvolvimento utilizou-se o banco de dados MySQL por ser um banco de dados que no utiliza muitos recursos do computador. Foi feito testes nos bancos de dados Oracle e HSQLDB, o que se fez necessrio apenas mudana do driver para acesso ao banco de dados.
Quadro 21 Tecnologias empregadas na aplicao

e JPA. muito

da

aplicao

no

abrangente, no focando partes importantes

Devido a problemas encontrados na tecnologia, houve dificuldade e atrasos na

63 implementao do prottipo. Os casos de uso foram implementados e as entidades de empresa, projeto, atividades, itens, material, categoria e colaboradores persistidas no banco de dados, porm no foram implementadas relatrios, grficos ou filtros mais detalhados para busca de informaes no sistema. As atividades no so vinculadas umas as outros, no tem uma ordem especifica para execuo, podem ser baixadas pelo colaborador independentemente de ordem de execuo. No Quadro 22 apresenta-se o comparativo entre o prottipo desenvolvido e os trabalhos correlatos. Legenda das ferramentas: 1. Gerncia de Projetos de Software; 2. Gesto Outsourcing na Bunge; 3. Prottipo desenvolvido. Ferramenta Funcionalidade Sistema para a web Utiliza recurso AJAX Possibilidade de usar diferentes bancos de dados Controle de empresas Controle de fornecedores de Servios Controle de projetos Controle de projetos de software Cadastro do time de desenvolvimento do projeto Controle de colaboradores Cadastro de profisses Controle de atividades do projeto Controle de itens de uma atividade Registro de necessidades de recursos e especializaes Cadastro de grupo de avaliadores Registro de avaliao de colaboradores e atividades Plano de mtricas Registro de riscos do projeto Cadastro de materiais a serem utilizados nos itens de uma atividade Cadastro de categorias das atividades 1 No No No No No Sim Sim Sim Sim No Sim No No No No No Sim No No 2 No No No Sim Sim Sim No No Sim Sim Sim No Sim Sim Sim Sim No No No 3 Sim Sim Sim Sim No Sim No No Sim No Sim Sim No No No No No Sim Sim

64
Quadro 22 Comparativo entre prottipo e trabalhos correlatos

Conforme visto no Quadro 22, algumas funcionalidade do prottipo implementado no trabalho no so encontradas nas ferramentas correlatas. Em contrapartida algumas funcionalidades que so encontradas nas ferramentas correlatas no foram implementadas no prottipo desenvolvido.

65 4 CONCLUSES

Como visto neste presente trabalho, possvel obter um resultado prtico desenvolvendo sistemas com JSF e JPA, criando aplicaes com AJAX que possibilitam que a aplicao execute menos atualizaes de telas no navegador, tornando mais rpido e prtico a utilizao da tela e exigindo menos arquivos de telas a serem criados. A utilizao do RichFaces como API AJAX possui muitos componentes que auxiliam no desenvolvimento da aplicao, porm a API carece de uma melhor documentao quanto ao uso desses componentes. A troca de banco de dados atravs do uso da JPA muito simples de ser realizada, o que viabiliza o porte da aplicao para outros bancos de dados. Com a utilizao dessas tecnologias obteve-se xito na implementao de um prottipo para controle de projetos e tarefas, permitindo que a aplicao seja acessada em um navegador web. Em termos de limitaes, o prottipo no possui um detalhamento grande das entidades da aplicao, como muitas informaes sobre as empresas e colaboradores, tais como especializaes do funcionrio e profisso. Tambm no possui relatrios nem grficos para que se possa fazer um acompanhamento das atividades. A maior facilidade encontrada na elaborao deste trabalho foi em relao escolha das ferramentas utilizadas para desenvolvimento de pginas web em Java, j que no mercado existem inmeras ferramentas que auxiliam os desenvolvedores na criao de sistemas web. Tais ferramentas atenderam adequadamente no desenvolvimento da aplicao. A maior dificuldade enfrentada durante a elaborao deste trabalho foi encontrar material adequado e amplo para o estudo das tcnicas AJAX atravs da API RichFaces, erros de compatibilidade entre JSF, NetBeans e Tomcat na hora de usar templates, incompatibilidades entre os navegadores Internet Explorer e Firefox na renderizao de pginas XHTML, o que acabou inviabilizando o uso de templates. Tambm houve grande dificuldade aos erros de cdigo reportados pela JPA que no indicavam adequadamente o motivo de determinado erro. A JSF, AJAX, JPA possibilitam o desenvolvimento de aplicaes com maior controle de cdigo, devido separao da camada de visualizao e das regras de negcios da aplicao, bem como o desenvolvimento de telas mais prticas e rpidas com o uso de AJAX, bem como a facilidade e independncia na escolha do banco de dados para persistncia dos dados.

66 4.1 EXTENSES

Entre possveis extenses para este trabalho, destacam-se: a) utilizao de mais recursos e componentes AJAX atravs do uso do RichFaces, ou de outra API AJAX, como IceFaces, Tomahawk ou ADF; b) criar funcionalidades novas como relacionamento de ordem de executao das atividades, cadastros de profisso, plano de mtricas, riscos do projeto, cadastro de especializaes e recurso de PERT/CPM; c) criar relatrios e grficos para as telas; d) criar sistema de backup da aplicao e sistema para transferncia das informaes de um banco de dados para outro; e) melhorar a interface grfica com o usurio e as diferenas de renderizao da tela entre o Internet Explorer e o Firefox; f) possibilitar a gerncia de projetos de softwares; g) integrao com outras ferramentas para a extrao de projetos e atividades, como por exemplo o Microsoft Project; h) permitir que os dados da aplicao sejam persistidos em arquivos XML.

67 REFERNCIAS BIBLIOGRFICAS

APACHE GROUP. Apache Tomcat. [S.l.], [2008?]. Disponvel em: <http://tomcat.apache.org/>. Acesso em: 15 jan. 2008. BAUER, Christian; KING, Gavin. Java Persistence with Hibernate. Greenwich: Manning, 2007. BELLIA, Renato. Provedores JPA. Java Magazine, So Paulo, n. 44, p. 28, 2007. BURKE, Bill; MONSON-HAEFEL, Richard. Enterprise javebeans 3.0. So Paulo: Pearson Prentice Hall, 2007. CARMO, Raquel. Enterprise JavaBeans 3.0: passo a passo. [S.l.], [2008?]. Disponvel em: <http://www.jeebrasil.com.br/mostrar/118>. Acesso em: 20 maio. 2008. DINSMORE, Paul C.; CAVALIERI, Adriane. Como se tornar um profissional em gerenciamento de projetos. 2. ed. Rio de Janeiro: Qualitymark, 2005. GENTLEWARE. Poseidon for UML. [S.l.], [2008?]. Disponvel em: <http://www.gentleware.com/products.html/>. Acesso em: 15 jan. 2008. GEARY, David F; HORSTMANN, Cay. Core JavaServer Faces: o guia autorizado. Rio de Janeiro: Alta Books, 2005. GLOBALCODE. Java Persistence. [S.l.], [2008?]. Disponvel em: <http://www.javanoroeste.com.br/tech_days_votuporanga/palestras/Java_Persistence_API.pdf >. Acesso em: 20 abr. 2008. GONALVES, Edson. Desenvolvendo aplicaes web com JSP, servlets, JavaServer Faces. Rio de Janeiro: Cincia Moderna, 2007. JBOSS. JBoss Ajax4JSF. [S.l.], [2008a]. Disponvel em: <http://www.jboss.org/jbossajax4jsf/>. Acesso em: 30 dez. 2007. JBOSS. JBoss RichFaces. [S.l.], [2008b]. Disponvel em: <http://www.jboss.org/jbossrichfaces/>. Acesso em: 20 maio. 2008. JCP. JSR-000220 Enterprise JavaBeans 3.0. [S.l.], [2008?]. Disponvel em: <http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html/>. Acesso em: 10 jan. 2008. LONEY, Kevin; THERIAULT, Marlene. Oracle9i: o manual do DBA. Rio de Janeiro: Campos, 2002.

68 MELO, Eduardo da Fonseca. WebManager - Uma ferramenta para gerncia de projetos de software baseada no Rational Unified Process . 2000. 67 f. Trabalho de Concluso de Curso (Bacharelado em Engenharia de Software) - Centro de Informtica, Universidade Federal de Pernambuco, Recife. NETBEANS.ORG. Netbeans. [S.l.], [2007?]. Disponvel em: <http://www.netbeans.org/>. Acesso em: 15 jan. 2008. ORACLE. Oracle 10G Express. [S.l.], [2008?]. Disponvel em: <http://www.oracle.com/pls/xe102/homepage>. Acesso em: 15 jan. 2008. SACRAMENTO, Wendell Miranda. Introduo Java Persistence API JPA. [S.l.], [2008?]. Disponvel em: < http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=4590>. Acesso em: 10 jan. 2008. SCHUMACKER, Adilson. Gesto de outsourcing na Bunge Alimentos S.A.. 2005. 75 f. Trabalho de Concluso de Curso (Bacharelado em Sistemas de Informao) - Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. STEPHENS, Ryan; PLEW, Ron. Aprenda em 24 horas SQL3. Rio de Janeiro: Campus, 2003. SUN. The Java Persistence API. [S.l.], [2007?]. Disponvel em: <http://java.sun.com/developer/technicalArticles/J2EE/jpa/>. Acesso em: 15 ago. 2007. SUN. Java EE: do more with less work. [S.l.], [2008a]. Disponvel em: <http://java.sun.com/javaee/>. Acesso em: 01 jan. 2008. SUN. JavaServer Faces technology. [S.l.], [2008b]. Disponvel em: <http://java.sun.com/javaee/javaserverfaces/>. Acesso em: 01 jan. 2008. THE HSQLDB DEVELOPER GROUP. Hsqldb - 100% Java Database. [S.l.], [2008?]. Disponvel em: <http://www.hsqldb.org/>. Acesso em: 15 jan. 2008. VIEIRA, Marconi F. Gerenciamento de projetos: de tecnologia da informao. Rio de Janeiro: Campus, 2003.

Potrebbero piacerti anche