PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE...

69
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO – BACHARELADO PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE LAÉRCIO LÉO PEDROZO HARDOCK BLUMENAU 2008 2008/1-22

Transcript of PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE...

Page 1: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE CIÊNCIAS DA COMPUTAÇÃO – BACHARELADO

PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE

PROJETOS E ATIVIDADES UTILIZANDO JEE

LAÉRCIO LÉO PEDROZO HARDOCK

BLUMENAU 2008

2008/1-22

Page 2: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

LAÉRCIO LÉO PEDROZO HARDOCK

PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE

PROJETOS E ATIVIDADES UTILIZANDO JEE

Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciências da Computação — Bacharelado.

Prof. Wilson Pedro Carli, Mestre - Orientador

BLUMENAU 2008

2008/1-22

Page 3: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE

PROJETOS E ATIVIDADES UTILIZANDO JEE

Por

LAÉRCIO LÉO PEDROZO HARDOCK

Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:

______________________________________________________ Presidente: Prof. Wilson Pedro Carli, Mestre – Orientador FURB

______________________________________________________ Membro: Prof. Adilson Vahldick, Especialista – FURB

______________________________________________________ Membro: Prof. Evaristo Baptista, Mestre – FURB

Blumenau, 09 de julho de 2008.

Page 4: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

Dedico este trabalho à minha família, pelo apoio que me deram do decorrer da realização deste trabalho e a Maximiza, empresa na qual trabalho, por ter me possibilitado usar os recursos computacionais na realização deste.

Page 5: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

AGRADECIMENTOS

À minha família, que me deu apoio na realização deste trabalho.

A Maximiza, empresa na qual trabalho, por ter me cedidos recursos computacionais

para a realização deste trabalho.

Ao meu orientador, Wilson Pedro Carli, por ter acreditado na conclusão deste trabalho.

Page 6: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."

Albert Einstein

Page 7: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

RESUMO

Este trabalho consiste no desenvolvimento de um protótipo 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, através das tecnologias JSF e JPA, o que permite que a aplicação possa ser executada em diversos servidores com suporte a JEE e a diversos bancos de dados que possuam um driver JDBC.

Palavras-chave: Gerência de projetos. Java. JSF. JPA.

Page 8: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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.

Page 9: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

LISTA DE ILUSTRAÇÕES

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 anotações .............................................................. 24

Figura 3 – Cadastros do sistema ........................................................................................... 29

Quadro 2 – Descrição do Caso de Uso Login ....................................................................... 30

Quadro 3 – Descrição do Caso de Uso Manter empresa........................................................ 30

Quadro 4 – Descrição do Caso de Uso Manter colaborador .................................................. 31

Quadro 5 – Descrição do Caso de Uso Manter material........................................................ 31

Quadro 6 – Descrição do Caso de Uso Manter categoria ...................................................... 31

Quadro 7 – Descrição do Caso de Uso Manter projeto ......................................................... 32

Quadro 8 – Descrição do Caso de Uso Manter atividade ...................................................... 32

Quadro 9 – Descrição do Caso de Uso Manter item.............................................................. 33

Quadro 10 – Descrição 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 navegação do protótipo ................................. 38

Figura 7 – Diagrama de seqüência para visualização dos materiais....................................... 39

Figura 8 – Diagrama de interação do acesso as telas do sistema ........................................... 40

Figura 9 – Modelo das entidades do sistema......................................................................... 41

Quadro 11 - Configuração de uma aplicação JEE................................................................. 44

Quadro 12 - Configuração adicional para uma aplicação JSF ............................................... 44

Quadro 13 - Configuração do arquivo faces-config.xml do protótipo ................................... 45

Quadro 14 - Método da classe MaterialView e componente JSF .......................................... 46

Quadro 15 – Configuração do AJAX do protótipo................................................................ 47

Quadro 16 – Configuração do JPA do protótipo ................................................................... 48

Quadro 17 – Código JSF para exibição de informação e botões de ações.............................. 49

Figura 10 – Componente de visualização de materiais e botões de ações.............................. 50

Quadro 18 – Métodos da classe MaterialModel para persistência de materiais...................... 51

Quadro 19 – Métodos da classe MaterialDAO para persistência de materiais ....................... 52

Figura 11 – Dispositivos acessando a aplicação.................................................................... 53

Figura 12 – Autentificação do usuário.................................................................................. 54

Page 10: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

Figura 13 - Menu do protótipo ............................................................................................. 54

Figura 14 – Tela de atividades – visualização de registros .................................................... 55

Figura 15 – Tela de atividades edição de registros................................................................ 56

Figura 16 –Tela de atividades – inserção de registros ........................................................... 57

Quadro 20 – Telas da aplicação............................................................................................ 58

Figura 17 – Cadastro de registros pelo gerente ..................................................................... 59

Figura 18 – Conclusão de uma atividade por um colaborador............................................... 59

Quadro 21 – Tecnologias empregas na aplicação ................................................................. 60

Quadro 22 – Comparativo entre protótipo e trabalhos correlatos .......................................... 62

Page 11: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 Usuário

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

Page 12: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

SUMÁRIO

1 INTRODUÇÃO ............................................................................................................. 13

1.1 OBJETIVOS DO TRABALHO .................................................................................... 13

1.2 ESTRUTURA DO TRABALHO .................................................................................. 14

2 FUNDAMENTAÇÃO TEÓRICA ................................................................................ 15

2.1 GERÊNCIA 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 NÃO FUNCIONAIS............................................................................ 28

3.2 ESPECIFICAÇÃO........................................................................................................ 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 SEQUÊNCIA .................................................................................... 39

3.7 DIAGRAMA DE INTERFACE ..................................................................................... 40

3.8 MODELO ENTIDADE RELACIONAMENTO DA BASE DE DADOS ....................... 41

3.9 IMPLEMENTAÇÃO ..................................................................................................... 42

3.9.1 Técnicas e ferramentas utilizadas ................................................................................ 42

3.9.2 Implementação do Protótipo........................................................................................ 43

3.9.2.1Configuração do JSF ................................................................................................. 43

Page 13: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

3.9.2.2 Configuração do AJAX ............................................................................................ 46

3.9.2.3 Configuração da JPA................................................................................................ 47

3.9.2.4 Exemplo da implementação de uma tela da aplicação ............................................... 48

3.9.3 Operacionalidade da implementação ........................................................................... 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 DISCUSSÃO.................................................................................. 61

4 CONCLUSÕES ............................................................................................................. 65

4.1 EXTENSÕES ............................................................................................................... 66

REFERÊNCIAS BIBLIOGRÁFICAS.............................................................................. 67

Page 14: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

13

1 INTRODUÇÃO

A gestão de projetos e de tarefas realizadas por empresas e indivíduos torna-se cada

vez mais complexa, exigindo o controle de diversas etapas (iniciação, planejamento,

execução, controle e encerramento do projeto), que visam a resolução de um determinado

objetivo. O risco de fracasso de um projeto aumenta de acordo com a presença de incerteza

durante todos os estágios do projeto, em razão disto, a função do gerenciamento de projetos é

manter os riscos de fracasso em um nível tão baixo quanto necessário durante o ciclo de vida

do projeto, tendo como função definir e alcançar objetivos ao mesmo tempo em que se

otimiza o uso de recursos tais como tempo, dinheiro, pessoas, espaço, dentre outros.

Por conseguinte, o objetivo deste trabalho é a apresentação de um Sistema Gerenciador

de Projetos que facilite o controle de projetos e tarefas a serem realizadas por um usuário ou

grupo de pessoas. A aplicação tem diversos módulos, tais como: cadastros de colaboradores,

de empresas, de projetos, atividades e itens de atividades a serem realizados e módulo de

acompanhamento de projetos pelo gestor responsável e pelos colaboradores que irão realizar

as tarefas.

Para o desenvolvimento do sistema utiliza-se a linguagem de programação Java e a

arquitetura de desenvolvimento de aplicações para a web Java Enterprise Edition (JEE).

Também utiliza-se o Java Server Faces (JSF), um framework que separa o código da

aplicação em diferentes camadas, separando a parte visual dos códigos das regras de negócios.

Para a persistência dos dados é utilizado a Java Persistence API (JPA), que permite

persistir os dados em bancos de dados diversos através da utilização de objetos em Java sem

que seja necessária a utilização da Structured Query Language (SQL) para persistência das

informações. Os bancos de dados utilizados para armazenar os dados persistidos pela JPA são

o Oracle 10g Express Edition e o Hypersonic SQL Database (HSQLDB).

Page 15: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

14

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho é o desenvolvimento de um protótipo de um sistema web em

Java que possibilite que o usuário possa administrar projetos e atividades diversas.

Os objetivos específicos do trabalho são:

a) desenvolver um módulo para manter e controlar projetos;

b) manter informações sobre empresas e colaboradores;

c) delegar atividades aos usuários colaboradores;

d) implementar um aplicativo para acompanhar as tarefas delegadas aos

colaboradores;

e) implementar um aplicativo que permita que o colaboradores possam acompanhar o

andamento dos projetos;

f) desenvolver um módulo que mostre a informação do custo previsto e do custo real

de um projeto, com base no custo de hora trabalhada dos colaboradores que

executam as atividades.

1.2 ESTRUTURA DO TRABALHO

O trabalho está organizado em quatro capítulos. O capítulo 1 apresenta uma breve

introdução sobre o trabalho e os principais objetivos pretendidos.

No capítulo 2 é apresentada a fundamentação de alguns assuntos e tecnologias que são

relevantes para o entendimento deste trabalho. Entre eles estão o conceito de gerência de

projetos, as tecnologias JEE, JSF, JPA e bancos de dados utilizados no trabalho.

No capítulo 3 é detalhado o desenvolvimento do trabalho descrevendo os requisitos do

sistema, especificação da sua estrutura, os passos para publicação do sistema e um caso de uso

sobre a operacionalidade do protótipo desenvolvido. Por fim são apresentados os resultados

obtidos.

No último capítulo são apresentadas as conclusões e sugestões para trabalhos futuros.

Page 16: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

15

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo são apresentados os conceitos de Gerência de Projetos e sua relevância

para o sucesso na administração de tarefas a serem realizadas. Também são vistas as

tecnologias que são essenciais para o entendimento do desenvolvimento do trabalho e os

trabalhos correlatos.

2.1 GERÊNCIA DE PROJETOS

Um projeto pode ser considerado como um empreendimento que tem a finalidade de

atingir o objetivo de produzir um produto ou serviço, levando em consideração 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 seqüência clara e lógica de eventos. Para a execução das diversas

tarefas que possam a vir a serem criadas, deve-se selecionar os recursos humanos e materiais

necessários a execução das diversas atividades a fim de que as metas estabelecidas sejam

alcançadas.

2.1.1 Ciclo de vida de um projeto

Para a execução de um projeto e sua conclusão 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) iniciação – início formal do projeto, sendo elaborados as versões iniciais de

orçamento, cronogramas, proposta inicial e escolha da equipe de projeto;

b) planejamento – elaboração com maior nível de detalhes da etapa anterior

(orçamento e cronograma) e desenvolvimento e teste dos protótipos iniciais;

c) execução – os planos propostos são postos em prática;

d) monitoramento / controle – acompanhamento das tarefas propostas;

e) encerramento – entrega do produto ou serviço produzido.

Page 17: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

16

Após a conclusão do conjunto de etapas, um produto ou serviço é obtido, tendo-se

assim alcançado 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 função, ele deve possuir uma série de

habilidades de administração geral:

a) liderança;

b) comunicação;

c) negociação;

d) solução de problemas;

e) Influência na organização.

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 mão os requisitos do projeto, o

orçamento disponível e os recursos humanos e materiais disponíveis 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

Page 18: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

17

importante que sejam escolhidos os recursos humanos e materiais para a correta execução das

atividades. Para cada projeto o gerente deverá escolher a equipe de colaboradores que melhor

preencha os requisitos para realização 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) relatório de progresso;

b) previsões em termos de situação atual e andamento;

c) verificação de escopo – processo de formalização do aceite do escopo do projeto

por todos os envolvidos;

d) controle de mudanças 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 são importantes para a condução do projeto, pois

possibilitam que o gerente de projetos tome as decisões corretas para que o projeto termine de

acordo com seu cronograma e metas.

2.2 JEE E JSF

Conforme SUN (2008a), JEE é a especificação do Java para o desenvolvimento de

aplicações para a Internet. Utiliza-se a plataforma Java para possibilitar o desenvolvimento de

aplicações portáteis, robustas, escaláveis e seguras. Para o desenvolvimento de aplicações JEE

foi utilizado o padrão de desenvolvimento Java Server Faces (JSF) proposto pela empresa

Page 19: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

18

Sun Microsystems. O objetivo do JSF, segundo SUN (2008b), é criar um padrão para

aplicações web, visando simplificar a construção de interfaces de usuário, possibilitando que

componentes de interface com o usuário sejam reaproveitadas.

Segundo Geary (2005, p. 3), pode-se dividir o JSF em três partes:

a) um conjunto de componentes de Interface de Usuário (IU) pré-desenvolvidos;

b) um modelo de programação dirigido a eventos;

c) um modelo de componentes que permite a desenvolvedores independentes

fornecerem componentes adicionais.

No JSF há uma separação entre as camadas de visualização, programação das

funcionalidades da aplicação (camada de negócio) e navegação entre as diversas telas. A

camada de visualização é construída com componentes JSF, conforme descrito anteriormente,

a camada de negócio (manipulação da lógica da aplicação) é definido através do uso de

JavaBeans (classes Java) e a navegação entre telas é definida através do configuração de um

arquivo eXtensible Markup Language (XML).

A camada de visualização disponibiliza alguns componentes de IU para utilização para

a construção de telas. Cada componente HiperText Markup Language (HTML) possui um

componente correspondente próprio para utilização 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 aplicações é necessário utilizar as tags JSF

em vez das tags HTML. Além desses componentes é possível desenvolver componentes

novos para utilização nas aplicações, tais como menus, componentes de upload de imagens,

visualização de registros de um banco de dados. A programação é semelhante da camada de

visualização é semelhante a programação com HTML, porém utilizando os comandos do JSF.

Conforme Burke e Monson-Haefel (2007), para a camada de negócios utiliza-se

JavaBeans (classes Java com métogos get e set para acesso as variáveis), onde os

componentes da camada de visualização fazem referência as camadas de negócios através dos

métodos get e set e através dos métodos disponíveis da camada de negócios. Por exemplo, os

componentes de um formulário, como um campo de entrada de dados, devem referenciar um

método get de um JavaBean. O JavaBean quando utilizada na função de tratar a camada de

negócios de uma aplicação JSF é chamado de ManagedBean, devido a ter a função de

gerenciar a camada de negócios. No ManagedBean pode ter outros métodos, como métodos

de validação de dados, captura de informações de um banco de dados, conversão de valores,

armazenamento das informações de uma tela e outros.

O ManagedBean é usado para tratar os eventos ocorridos na camada de visualização,

Page 20: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

19

isto é, quando ocorre ações como selecionar um campo numa lista de valores, apertar um

botão numa tela, um método no ManagedBean é ativado. Nesse momento, o fluxo de dados é

passado para o ManagedBean, que executa a lógica de negócios e em seguida é renderizado

novamente a camada de visualização com os dados processados.

O processo de navegação entre páginas é feito através da configuração do arquivo

XML faces-config.xml. Este arquivo além de configurar o fluxo de navegação, permite

disponibilizar os ManagedBean para que sejam acessados pela camada de visualização,

permitindo que a camada de visualização e a camada de negócios possam trocar informações.

Na Figura 1 pode-se ver como é mapeada a informação entre a camada de

visualização, de negócios e de controle. O componente <h:inputText> acessa a variável

email através do método getEmail() e setEmail() do ManagedBean OlaMundoMB.

O ManagedBean é disponibilizado para a camada de visualização através do arquivo de

configuração faces-config.xml, onde é informado que a classe OlaMundoMB estará

disponível à aplicação pelo nome OlaMundoMB.

Page 21: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

20

Fonte: Globalcode (2008).

Figura 1 – Mapeamento de componentes do JSF

O JSF possui suporte a Asynchronous Javascript And XML (AJAX) através das

bibliotecas AJAX4JSF (JBOSS, 2008a) e RichFaces (JBOSS, 2008b). Segundo Gonçalves

Page 22: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

21

(2007, p. 589), o AJAX não é 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 é possível atualizar

apenas um fragmento da tela, não sendo necessário atualizar a tela inteira.

2.2.1 JPA

A persistência de dados é crítica para a maioria das aplicações 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 diferenças, o que dificulta a

transição de uma aplicação 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 razão das diferenças de sintaxe entre os diversos bancos de dados relacionais e da

diferença no modo na utilização da linguagem Java e na manipulação do banco de dados,

foram criados diversos mecanismos de persistência orientado-relacional, dentre os quais pode-

se citar:

a) JBoss Hibernate;

b) Oracle Toplink Essentials.

Conforme Gonçalves (2007, p. 544), o TopLink Essentials é a implementação de

referência da EJB 3.0 Java Persistence API, e o Hibernate é um framework open-source e

muito utilizado pela comunidade de desenvolvimento Java. Embora existam inúmeros

mecanismos de persistência orientado a objeto, não há nenhum mecanismo de persistência

padrão para a plataforma Java que pode ser usado tanto no ambiente Java EE e no Java SE.

Em razão disso foi criado o padrão EJB3 Java Persistence API (JPA) para padronizar a

persistência de dados na plataforma Java.

Segundo a Sun (2007), o JPA é uma especificação para persistência de dados através

do uso de objetos em Java. A JPA foi acrescentada à API do framework de persistência

Enterprise Java Beans (EJB), tornando assim a programação com EJB (na versão EJB3) mais

simplificada e tornando-se um padrão para persistência objeto/relacional.

Page 23: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

22

2.2.1.1 Provedores JPA

A JPA é parte da especificação EJB 3.0 - JSR-220 (JCP, 2008), e padroniza o

mapeamento objeto/relacional em Java. Com a especificação JPA, diversos provedores de

API de mapeamento objeto/relacional como o Oracle Toplink e o Hibernate, podem

implementar a especificação e liberar uma API de persistência de acordo com a especificação.

Uma aplicação Java (JSE ou JEE) utiliza a JPA e esta se encarrega de fazer a conexão

com o banco de dados. A JPA faz parte da especificação JSR 220 – EJB3, e necessita de

modo semelhante ao JDBC, de um provedor JPA que implemente a especificação. Há

diversas implementações da JPA, como Hibernate, Kodo, OpenJPA, TopLink, sendo esta

última a implementação de referência. O provedor é responsável por utilizar da API JDBC

para manipular informações 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 persistência de dados são chamadas de entidades e são classes Java

simples, com métodos get e métodos set. Para a persistência das informações tem-se que

mapear uma classe do tipo entidade para a tabela correspondente do banco de dados,

conforme mostrado na Figura 2.

Page 24: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 é

através de metadados através do uso de anotações nas classes de entidades, conforme o

Quadro 1. Como se mostra no Quadro 1, pode-se ver que a anotação

@Table(name="MESSAGES") mapeia a classe Message para a tabela MESSAGES.

Assim é feito com as variáveis que podem ser mapeadas como colunas de uma tabela. Outra

forma de mapear as classes de entidade é através de um arquivo de mapeamento em que se

mapeia todas as entidades e que geralmente é o arquivo orm.xml.

Page 25: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 anotações

Page 26: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 versão gratuita (Oracle 10G Express) que pode ser utilizada em

aplicações de menor porte (ORACLE, 2008).

O HSQLDB é um banco de dados com recursos avançados, que aliada a baixa

demanda por recursos computacionais e simplicidade de instalação e configuração, tornando-

se um bom mecanismo de persistência de dados (THE HSQLDB DEVELOPER GROUP,

2008). O HSQLDB é um banco de dados freeware, podendo ser utilizado gratuitamente em

aplicações tanto de uso pessoal quanto profissional.

Segundo Stephens (2003, p. 331), os bancos de dados possuem diferenças no dialeto

da SQL, que faz com que determinados comandos apenas sejam interpretados por

determinado banco de dados. Porém a JPA consegue interpretar essas diferenças, gerando o

SQL específico 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 gerência de projetos, porém 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 protótipo desenvolvido possui os módulos de atividades

de projeto, recursos humanos, métricas e de riscos do projeto. O aplicativo disponibiliza estas

funcionalidades através de uma aplicação web, desenvolvida na plataforma JEE, utilizando a

linguagem de programação Java. As páginas web são programadas através de JSP e os dados

são persistidos no banco de dados Access.

Já Schumacker (2005), implantou uma aplicação em Oracle Forms/Reports na Bunge

Alimentos S.A. para gestão de outsourcing. O trabalho apresenta a proposta de melhorar a

gestão dos serviços prestados por empresas de informática que prestam serviço para a Bunge.

Page 27: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

26

O sistema controla o cadastro de profissionais, fornecedores, serviços prestados, projetos e

atividades concluídas e abertas.

Page 28: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

27

3 DESENVOLVIMENTO

Neste capítulo têm-se as descrições do sistema proposto, a metodologia aplicada, os

requisitos funcionais e não funcionais, a modelagem entidade relacionamento (MER) do

banco de dados. São apresentados os diagramas de casos de uso, diagrama de classes e de

seqüência, a implementação da aplicação e demonstração da parte operacional, bem como os

resultados obtidos com o protótipo.

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

Na seqüência são apresentados os requisitos funcionais e não 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á responsável pelo

projeto;

f) os projetos devem ter um colaborador responsável pela sua execução;

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 elaboração 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 usuários somente poderão visualizar suas tarefas a serem feitas, não podendo

visualizar outras tarefas que foram atribuídas a outros colaboradores;

Page 29: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

28

k) o usuário ao concluir uma atividade, deve informar através de um campo de status

que a tarefa foi concluída;

l) permitir agrupar as tarefas em categorias.

3.1.2 REQUISITOS NÃO FUNCIONAIS

Como requisitos não funcionais tem-se:

a) a aplicação deve apresentar uma interface web, possibilitando que qualquer usuário

acesse o sistema através de um navegador web;

b) a aplicação deve suportar múltiplos usuários simultâneos;

c) a aplicação deve ser flexível para utilizar bancos de dados relacionais diversos que

tenham um driver JDBC disponível;

d) a aplicação deve manter compatibilidade com o navegador web Internet Explorer;

e) utilizar Cascading Style Sheet (CSS) para a formatação do layout da aplicação

web.

3.2 ESPECIFICAÇÃO

Utilizou-se para a especificação do projeto uma metodologia orientada a objetos,

representada através de diagramas que fazem parte da Unified Modeling Language (UML),

tendo como ferramenta de suporte a esta especificação a Enterprise Architect, que foi

utilizada para a construção do diagrama de casos de uso, diagrama de classes e diagrama de

atividades.

Para a criação do modelo conceitual da base de dados foi utilizado a ferramenta

DBDesigner.

Page 30: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

29

3.3 DIAGRAMA DE CASO DE USO

Para melhor entendimento do sistema, foram elaborados três diagramas de caso de

uso, um para as dependências entre os casos de uso, um para os cadastros e outro para as

associações entre os cadastros.

Na Figura 3 tem-se o caso de uso sobre os cadastros do protótipo.

Figura 3 Cadastros do sistema

Page 31: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

30

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

Nome do Caso de Uso Login

Descrição Usuário acessa aplicação via navegador Internet e informa dados para login e senha

armazenados no cadastro do colaborador.

Ator Usuário

Pré-condição Sistema deve estar hospedado no servidor web.

Usuário deve estar cadastrado no banco de dados.

Fluxo principal 1. Usuário preenche seu login e sua senha;

2. Sistema valida os dados de login e senha do usuário;

3. Sistema direciona o Usuário para a página de menu do protótipo.

Fluxo alternativo (a) • nome de usuário e/ou senha inválido(s)

• alerta com mensagem “usuário ou senha inválida” é mostrada.

Pós-condição Usuário entra conectado ao sistema.

Quadro 2 – Descrição do caso de uso Login

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

Nome do Caso de Uso Manter empresa

Descrição Usuário acessa o link Empresa para manter dados de empresas. Serão mantidos os

dados: nome da empresa, bairro, cidade, endereço, estado, telefone comercial e cep.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Fluxo principal 1. Sistema informa as empresas cadastradas;

2. Usuário opta por editar, apagar ou cadastrar uma empresa;

Cenário – Visualização Sistema mostra os registros de empresas cadastradas para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra o nome, bairro, cidade, endereço, estado, telefone e cep da

empresa para edição;

4. Usuário altera registro e seleciona opção para atualizar os dados (nome, bairro,

cidade, endereço, estado, telefone e cep);

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou uma empresa.

Quadro 3 – Descrição do caso de uso Manter empresa

Page 32: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

31

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

Nome do Caso de Uso Manter colaborador

Descrição Usuário acessa o link Colaborador para manter dados de colaboradores. Serão

mantidos os dados: bairro, cidade, descrição sobre o colaborador, endereço, estado,

telefone comercial, nome, cep, valor de quanto ganha por hora. Deverá ser

informado em qual empresa o colaborador trabalha.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Sistema deve ter pelo menos uma empresa cadastrada.

Fluxo principal a) o sistema informa os colaboradores cadastrados;

b) usuário opta por editar, apagar ou cadastrar um colaborador;

c) ao optar por editar ou cadastrar, usuário deve associar uma empresa ao

colaborador;

Cenário – Visualização Sistema mostra os registros de colaboradores cadastrados para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra o nome, descrição, bairro, cidade, endereço, estado, telefone,

cep, valor por hora do colaborador para edição;

4. Usuário altera registro e seleciona opção para atualizar os dados (nome,

descrição, bairro, cidade, endereço, estado, telefone, cep, valor por hora);

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou um colaborador da empresa.

Quadro 4 – Descrição do caso de uso Manter colaborador

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

Nome do Caso de Uso Manter material

Descrição Usuário acessa o link Material para manter dados dos materiais. Serão mantido a

descrição do material.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Fluxo principal a) o sistema informa os materiais cadastrados;

b) usuário opta por editar, apagar ou cadastrar um material;

Cenário – Visualização Sistema mostra os registros de materiais cadastrados para o Usuário.

Page 33: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

32

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra a descrição do material para edição;

4. Usuário altera registro e seleciona opção para atualizar a descrição do material;

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou um material.

Quadro 5 – Descrição do caso de uso Manter material

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

Nome do Caso de Uso Manter categoria

Descrição Usuário acessa o link Categoria (Categoria das Atividades). Informa o tipo de

categoria ao qual uma atividade pertence. Será mantido a descrição da categoria.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Fluxo principal a) o sistema informa as categorias cadastradas;

b) usuário opta por editar, apagar ou cadastrar uma categoria;

Cenário – Visualização Sistema mostra os registros de categorias cadastradas para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra a descrição da categoria para edição;

4. Usuário altera registro e seleciona opção para atualizar a descrição da categoria;

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou uma categoria.

Quadro 6 – Descrição do caso de uso Manter categoria

Page 34: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

33

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

Nome do Caso de Uso Manter projeto

Descrição Usuário acessa o link Projeto para manter dados de projetos. Serão mantidos os

dados: descrição do projeto, observação, status de conclusão indicando se finalizado

ou não, orçamento previsto para o projeto, prazo para termino do projeto. Deverá

informar a empresa ao qual o projeto pertence e o colaborador responsavel.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Sistema deve ter pelo menos uma empresa cadastrada.

Fluxo principal a) o sistema informa os projetos cadastrados;

b) usuário opta por editar, apagar ou cadastrar um projeto;

c) ao optar por editar ou cadastrar, usuário deve associar uma empresa ao projeto;

Cenário – Visualização Sistema mostra os registros de projetos cadastrados para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra descrição do projeto, observação, status, orçamento previsto

proeteo para edição;

4. Usuário altera registro e seleciona opção para atualizar os dados (descrição do

projeto, observação, status, orçamento previsto do projeto);

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou um projeto da empresa.

Quadro 7 – Descrição do caso de uso Manter projeto

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

Nome do Caso de Uso Manter atividade

Descrição Usuário acessa o link Atividade (Atividade do Projeto) para manter dados das

atividades que um projeto possui. Serão mantidos os dados: descrição da atividade,

observação, status de conclusão da atividade. Informar o tipo de categoria da

atividade e o funcionário encarregado de realizar a atividade.

Ator Usuário

Pré-condição Usuário deve fazer login no sistema.

Sistema deve ter pelo menos uma empresa cadastrada.

Sistema deve ter pelo menos um projeto cadastrado.

Page 35: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

34

Fluxo principal a) o sistema informa as atividades cadastradas;

b) usuário opta por editar, apagar ou cadastrar uma atividade;

c) ao optar por editar ou cadastrar, usuário deve associar uma empresa e um projeto

à atividade;

Cenário – Visualização Sistema mostra os registros de atividades cadastrados para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra a descrição da atividade, nome do projeto ao qual pertence,

observação, status da atividade para edição;

4. Usuário altera registro e seleciona opção para atualizar os dados (descrição da

atividade, observação, status);

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou uma atividade do projeto.

Quadro 8 – Descrição do caso de uso Manter atividade

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

Nome do Caso de Uso Manter item

Descrição Usuário acessa o link Item (Item da Atividade). Cada atividade poderá ter diversos

itens associados. Sera mantido a descrição 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 serão necessários para a realização do trabalho a ser feito.

Ator Usuário

Pré-condição Usuário 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) usuário opta por editar, apagar ou cadastrar um item;

c) ao optar por editar ou cadastrar, usuário deve associar uma atividade ao item;

Cenário – Visualização Sistema mostra os registros de itens das atividades cadastrados para o Usuário.

Cenário – Edição 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para edição;

3. Sistema mostra a descrição do item e a atividade a qual pertence para edição;

4. Usuário altera registro e seleciona opção para atualizar a descrição do item;

Page 36: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

35

5. Sistema mostra os registros cadastrados com o registro alterado.

Cenário – Inclusão 1. Sistema mostra registros cadastrados;

2. Usuário inclui um novo registro;

3. Sistema mostra os registros cadastrados.

Cenário – Exclusão 1. Sistema mostra registros cadastrados;

2. Usuário seleciona um registro para exclusão;

3. Sistema exclui o registro e mostra os registros restantes.

Pós-condição Usuário visualizou, editou, apagou ou cadastrou um item da atividade.

Quadro 9 – Descrição do caso de uso Manter item

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

Nome do Caso de Uso Associar material/item

Descrição Usuário acessa o link Material da tela de Item da Atividade para associar os

materiais usados por um item. Um item pode ter vários materiais, então deve-se

associar um material a um item.

Ator Usuário

Pré-condição Usuário 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) usuário opta por desassociar ou associar um material a um item;

c) ao optar por editar ou cadastrar, usuário deve associar uma atividade ao item;

Cenário – Associar 1. Sistema mostra registros cadastrados de itens para o usuário;

2. Usuário seleciona um registro de um item;

3. Usuário associa materiais ao item selecionado;

4. Sistema mostra os registros de itens cadastrados e de seus materiais.

Cenário – Desassociar 1. Sistema mostra registros cadastrados de itens para o usuário;

2. Usuário seleciona um registro de um item;

3. Usuário seleciona um material do item e desassocia;

4. Sistema mostra os registros de itens cadastrados e de seus materiais.

Pós-condição Usuário associou um material a um item de uma atividade.

Quadro 10 – Descrição do caso de uso Associar material/item

Page 37: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

36

3.4 DIAGRAMA DE CLASSES

Na Figura 4 se apresenta o diagrama de classes com as classes que representam as

entidades serão 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 função 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;

Page 38: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 anotação @Entity

informa que a classe é do tipo entidade e a anotação @Table(name="MATERIAL") nforma o

nome da tabela que deverá ser criada no banco de dados.

Figura 5 – Mapeamento objeto relacional

Page 39: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

38

3.5 DIAGRAMA DE ATIVIDADES

No diagrama de atividade da Figura 6 mostra-se o fluxo de navegação do protótipo.

Figura 6 – Diagrama de atividade do fluxo de navegação do protótipo

Page 40: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

39

3.6 DIAGRAMA DE SEQÜÊNCIA

Na Figura 7 pode-se observar um diagrama de seqüência que descreve a seqüência de

passos realizados para que um usuário possa visualizar os materiais da tela de Material.

Figura 7 – Diagrama de seqüência para visualização dos materiais

Page 41: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

40

3.7 DIAGRAMA DE INTERFACE

Na Figura 8 pode-se observar um diagrama de interface que descreve as telas que cada

usuário tem permissão para acessar.

Figura 8 – Diagrama de interação do acesso as telas do sistema

Page 42: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

41

3.8 MODELO ENTIDADE RELACIONAMENTO DA BASE DE DADOS

O protótipo utiliza uma base de dados para armazenar os dados do sistema. Na Figura

9 pode-se observar o modelo entidade relacionamento das entidades que serão persistidos no

banco de dados.

Figura 9 – Modelo das entidades do sistema

Page 43: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 execução.

3.9 IMPLEMENTAÇÃO

Nas seções seguintes são mostradas as técnicas e ferramentas utilizadas para o

desenvolvimento deste trabalho e a operacionalidade da implementação.

3.9.1 Técnicas e ferramentas utilizadas

Para implementação do sistema web, foi utilizado a linguagem de programação Java e

a plataforma JEE. Foram utilizadas as tecnologias JSF, RichFaces, Ajax4JSF e JPA da

linguagem de programação Java. A JSF permite a separação da aplicação em camadas

distintas para a visualização da tela e para a programação da camada de negócios, enquanto

Page 44: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

43

que as API(s) RichFaces e Ajax4JSF permitem o desenvolvimento de aplicações web mais

dinâmicas através do uso de AJAX. Por fim, para a persistência dos dados foi utilizado a API

JPA, que permite a persistência de classes de entidade em um banco de dados relacional.

Para a modelagem da aplicação foi utilizado a ferramenta DBDesigner para modelação

do banco de dados e a ferramenta Enterprise Architect para modelar os diagramas de casos de

uso, classe, atividade, seqüência e de interface. Para programação em Java foi utilizado a

Integrated Development Environment (IDE) NetBeans (NETBEANS.ORG, 2008) e o servidor

Apache Tomcat (APACHE GROUP, 2008) para hospedar a aplicação. Para a persistência dos

dados fui utilizado os bancos de dados Oracle, MySQL e HSQLDB.

3.9.2 Implementação do Protótipo

Nesta sessão mostra-se as configurações do protótipo e estrutura e códigos principais

da aplicação.

3.9.2.1 Configuração do JSF

A configuração do JSF é realizada em um arquivo no formato texto chamado web.xml,

localizado no WEB-INF da aplicação web.

Neste arquivo, a configuração ajustada para que os arquivos com a extensão jsf

sejam controlados pelo JSF, através da classe javax.faces.webapp.FacesServlet. Isto

significa que sempre que um arquivo com a extensão jsf for chamado, o controle de fluxo

dos dados da aplicação ficará a cardo do servlet FacesServlet. Também é necessário a

criação do arquivo faces.config.xml, localizado no diretório WEB-INF. Esse arquivo

contém as informações sobre o fluxo de navegação da aplicação e das classes da camada de

negócios.

No Quadro 11 tem-se o código do arquivo web.xml de uma aplicação JEE que não

utiliza JSF e no Quadro 12 tem-se o código que se deve acrescentar para se ter suporte a JSF.

Page 45: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

44

Quadro 11 - Configuração de uma aplicação JEE

O arquivo "web.xml" esta informando que a sessão se encerra em 30 segundos e que

a página inicial da aplicação web é o arquivo "index.jsp".

Quadro 12 - Configuração adicional para uma aplicação JSF

O Quadro 13 mostra o arquivo faces.config.xml com um exemplo de fluxo de

navegação e uma classe Java disponível para uso pela camada de negócios.

Page 46: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

45

Quadro 13 - Configuração do arquivo faces-config.xml do protótipo

No arquivo faces.config.xml temos uma classe Java que é utilizada na aplicação e

um fluxo de navegação. As classes Java disponibilizadas neste arquivo são chamadas de

ManagedBean. Os métodos desta classe ficam disponíveis para a camada de visualização

através do nome materialView, que corresponde a classe

web.jsf.model.MaterialModel. O Quadro 9 mostra dois métodos da classe materialView

e no Quadro 14 é mostrado como acessar um métodos através de um componente JSF da

camada de visualização.

Page 47: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

46

Quadro 14 - Método da classe MaterialView e componente JSF

O método getTodos()é responsavel por trazer a informação de todos o registros de

materiais persistidos no banco de dados. A classe é disponibilizado na aplicação com o nome

de materialView, e o método esta sendo acessando através do comando

#{materialView.todos}.

3.9.2.2 Configuração do AJAX

O arquivo web.xml é responsável por conter a configuração da API AJAX RichFaces.

O Quadro 15 mostra as configurações de configuração do AJAX no arquivo web.xml.

Page 48: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

47

Quadro 15 – Configuração do AJAX do protótipo

3.9.2.3 Configuração da JPA

A configuração do JPA é realizada pelo arquivo persistence.xml que se encontra no

pasta WEB-INF/classes/META-INF. O Quadro 16 mostra o código do arquivo de

configuração. O arquivo de configuração informa a localização e o driver do banco de dados e

o usuário e senha para conexão.

Page 49: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

48

Quadro 16 – Configuração do JPA do protótipo

3.9.2.4 Exemplo da implementação de uma tela da aplicação

Cada tela possui os recursos de menu de navegação, visualização dos registros

cadastrados, cadastro, edição e exclusão de registros. Todos os recursos de edição de dados

são implementados através do uso de AJAX, o que faz com que não seja necessário ter

diversos arquivos para cada uma dessas funções e também com que não seja necessário

recarregar toda a tela para atualização dos dados da tela.

O JSF faz a separação da camada de visualização da camada de regras de negócios. Na

camada de visualização é utilizado um arquivo JSP com suas respectivos comandos e também

os comandos AJAX. Esse arquivo único contém todo o código visual para visualização,

cadastro, edição e exclusão de registros. O Quadro 17 mostra a parte do código que mostra os

registros da tela de materiais e os componentes para edição, exclusão e cadastro de registro. O

resultado da execução do código é mostrado na Figura 10.

Page 50: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

49

Quadro 17 – Código JSF para exibição de informação e botões de ações

Page 51: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

50

O comando value="#{materialView.todos}" var="item" é responsável por

acessar o método getTodos() da classe MaterialModel. A classe Material contém todas as

regras de negócio da aplicação. Esse método por sua vez, executa o método

getTodosRegistroS() da classe MaterialDAO. A classe MaterialDAO é responsável por

encapsular toda a lógica de persistência dos materiais no banco de dados, utilizando para isso

a API JPA. No Quadro 18 mostram-se os métodos para visualização, inclusão, atualização e

exclução de um registro da classe MaterialModel enquanto que no Quadro 19 mostra-se os

métodos correspondentes na classe MaterialDAO. A classe MaterialModel tem todos os

métodos referentes a tela de materiais, enquanto que a classe MaterialDAO tem somente os

métodos para a persistência dos dados.

Figura 10 – Componente de visualização de materiais e botões de ações

Page 52: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

51

Quadro 18 – Métodos da classe MaterialModel para persistência de materiais

Page 53: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

52

Quadro 19 – Métodos da classe MaterialDAO para persistência de materiais

Page 54: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

53

3.9.3 Operacionalidade da implementação

A aplicação web para poder ser acessada deve estar num servidor disponível em uma

rede de computadores ou na Internet. Os dispositivos que acessaram a aplicação também

devem estar conectados a Internet e devem acessar o endereço eletrônico da aplicação que se

encontra no servidor. O computador servidor hospedara a aplicação em um servidor web com

suporte a JEE. A persistência das informações é 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 representação do acesso de diversos dispositivos ao servidor com a

aplicação.

Figura 11 – Dispositivos acessando a aplicação

Para se ter acesso à aplicação o usuário deve estar devidamente autorizado e

autentificado pelo sistema. Para isso o usuário deve informar seu código de usuário e sua

senha conforme mostra a Figura 12. Após a autentificação com sucesso, o usuário será

encaminhado para a tela de menu mostrado na Figura 13.

Page 55: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

54

Figura 12 – Autentificação do usuário

Figura 13 - Menu do protótipo

O usuário com permissão de gerente tem permissão para navegar para ver todo o

menu, enquanto que para um usuário com permissão de colaborador apenas terá disponíveis

Page 56: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

55

as telas de Atividade e do Item da Atividade.

Cada tela do protótipo tem as funcionalidades de visualização, exclusão, edição e

inserção de dados.

No Quadro 20 tem-se a descrição das telas do protótipo.

Tela Descrição

Login Autentificação da aplicação. Cada colaborador possui uma senha para

acesso.

Menu Menu com links para todas as telas.

Empresa Tela de cadastro de empresas. Tem como função cadastra as empresas que

terão projetos no sistema.

Colaborador Tela de cadastro dos usuários do sistema. São dois tipos de usuários, gerente

e colaborador.

Material Cadastros dos materiais que serão utilizados nos itens das atividades.

Categoria Cadastros das categorias das atividades. Cada atividade deve ter uma

categoria.

Projeto Cadastros dos projetos das empresas.

Atividade Cadastro das atividades dos projetos.

Item Cadastro dos itens a serem executados para cada atividade de um projeto.

Quadro 20 - Telas da aplicação

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 funcionário, com um determinado prazo. O gerente quer

que a atividade tenha alguns itens. Para a realização dos itens será necessária a utilização de

alguns materiais.

Page 57: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

56

3.9.3.1.1 Cadastro de empresas

Caso a empresa do gerente não esteja cadastrada, o gerente cadastra sua empresa e

cadastra seu usuário nessa empresa. Dessa forma sempre que conectar ao sistema, seu usuário

estará relacionado com a empresa onde trabalha. A Figura 14 mostra as empresas

cadastradas.

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. Então antes de

criar a atividade cria-se um projeto. Depois de criado o projeto, cria-se uma atividade para

este projeto.

Page 58: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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 opções

de visualização, exclusão do registro, edição ou inclusão de uma nova atividade. Na Figura 15

mostra-se a inclusão de uma atividade para um colaborador.

Figura 15 – Tela de atividades – visualização de registros

Cada atividade possui uma categoria, que identifica o tipo de atividade. Conforme a

Figura 14 mostra, as atividades do projeto são atividades do tipo Web, indicando que são

projetos voltados para a Web. Na Figura 15 temos algumas categorias cadastradas pelo

gerente.

Figura 16 – Categorias cadastradas

Page 59: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

58

Figura 17 – Tela de atividades – inserção de registros

Para inserir um novo registro, clica-se no botão de inserção. Após a inclusão do

registro, somente a tabela de registros será atualizada. Atividades inseridas podem ser editas

ou apagas. Ao realizar as funções de inclusão, edição será aberta uma tela para

preenchimento de dados enquanto que a tela de fundo se torna inacessível até que se confirme

ou se cancele o processo. As alterações serão aplicadas sem que seja necessária uma

atualização da tela, apenas se atualizando na tela as partes que serão alteradas. Ao se excluir

um registro apenas a tabela com os dados de registros será atualizada, não 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 realização 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

Page 60: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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

Page 61: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

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, então ele acessa a tela de

tarefas, onde irá ter as suas tarefas pendentes para execução. Cada tarefa pode ter diversos

itens para serem executados. Após a conclusão da atividade, o colaborador a conclui.

Page 62: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

61

3.10 RESULTADOS E DISCUSSÃO

O protótipo deve persistir diferentes tipos de dados em um sistema de Banco de Dados.

Inicialmente foram desenvolvidas as telas sem o uso de AJAX, e três telas para cada tipo de

cadastro. Uma para visualização dos dados e que também permite a exclusão, outra para

edição de registros e por fim uma para inclusão de registros. Isso faz com que ao se navegar

de uma tela para outra seja feito carregado todas as informações da tela. Com o uso de AJAX

foi possível realizar todas as tarefas de persistência na mesma tela, sem que fosse necessário

atualizar toda a tela, apenas atualizando e exibindo informações especificas.

Os resultados com as tecnologias utilizadas e os resultados obtidos podem ser vistas no

Quadro 21.

Tecnologia/Metodologia Resultado obtido

Sistema para a web Foi utilizado o navegador Firefox no

desenvolvimento da aplicação e testes

esporádicos no Internet Explorer. Ocorreram

ao longo do desenvolvimento diversos

problemas de diferenças na interface de layout

da tela. As telas em Firefox e Internet

Explorer possuem pequenas diferenças de

layout.

JSF Integrado o JSF ao JEE para separação das

camadas de visualização e regras de negocio.

API. Procurou-se utilzar recurso de templates

de telas, porém a API de templates se mostrou

incompatível com o servidor Tomcat 6

utilizado no desenvolvimento, devido a

problemas de compatibilidade da API de JSF

do NetBeans 6. Trocado a implementação de

JSF foi solucianado o problema, porém foi

Page 63: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

62

observado muitas diferenças 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 aplicação e há

diferenças na renderização dos componentes

XHTML de um navegador para outro. Em

razão disso não se utilizou templates.

AJAX Integrado o AJAX ao JSF através da API

RichFaces. Grande dificuldade no tratamento

de eventos dos componentes e integração com

a camada de regras de negocio e JPA.

Documentação da aplicação não muito

abrangente, não focando partes importantes

dos componetes.

JPA Utilizou-se a implementação TopLink do

JPA, por ser a implementação de referencia

para a tecnologia. Dificuldade na

interpretação de erros na programação em

JPA. Mensagens de erro não muito intuitivas,

em alguns casos mostrava um tipo de erro,

porém o motivo do erro era outro. Para

utilização de outros bancos de dados é

necessário 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 não utiliza muitos recursos do

computador. Foi feito testes nos bancos de

dados Oracle e HSQLDB, o que se fez

necessário apenas à mudança do driver para

acesso ao banco de dados.

Quadro 21 – Tecnologias empregadas na aplicação

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

Page 64: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

63

implementação do protótipo. Os casos de uso foram implementados e as entidades de

empresa, projeto, atividades, itens, material, categoria e colaboradores persistidas no banco de

dados, porém não foram implementadas relatórios, gráficos ou filtros mais detalhados para

busca de informações no sistema. As atividades não são vinculadas umas as outros, não tem

uma ordem especifica para execução, podem ser baixadas pelo colaborador

independentemente de ordem de execução.

No Quadro 22 apresenta-se o comparativo entre o protótipo desenvolvido e os

trabalhos correlatos.

Legenda das ferramentas:

1. Gerência de Projetos de Software;

2. Gestão Outsourcing na Bunge;

3. Protótipo desenvolvido.

Ferramenta

Funcionalidade 1 2 3

Sistema para a web Não Não Sim

Utiliza recurso AJAX Não Não Sim

Possibilidade de usar diferentes bancos de dados Não Não Sim

Controle de empresas Não Sim Sim

Controle de fornecedores de Serviços Não Sim Não

Controle de projetos Sim Sim Sim

Controle de projetos de software Sim Não Não

Cadastro do time de desenvolvimento do projeto Sim Não Não

Controle de colaboradores Sim Sim Sim

Cadastro de profissões Não Sim Não

Controle de atividades do projeto Sim Sim Sim

Controle de itens de uma atividade Não Não Sim

Registro de necessidades de recursos e especializações Não Sim Não

Cadastro de grupo de avaliadores Não Sim Não

Registro de avaliação de colaboradores e atividades Não Sim Não

Plano de métricas Não Sim Não

Registro de riscos do projeto Sim Não Não

Cadastro de materiais a serem utilizados nos itens de uma atividade Não Não Sim

Cadastro de categorias das atividades Não Não Sim

Page 65: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

64

Quadro 22 – Comparativo entre protótipo e trabalhos correlatos

Conforme visto no Quadro 22, algumas funcionalidade do protótipo implementado no

trabalho não são encontradas nas ferramentas correlatas. Em contrapartida algumas

funcionalidades que são encontradas nas ferramentas correlatas não foram implementadas no

protótipo desenvolvido.

Page 66: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

65

4 CONCLUSÕES

Como visto neste presente trabalho, é possível obter um resultado prático

desenvolvendo sistemas com JSF e JPA, criando aplicações com AJAX que possibilitam que

a aplicação execute menos atualizações de telas no navegador, tornando mais rápido e prático

a utilização da tela e exigindo menos arquivos de telas a serem criados. A utilização do

RichFaces como API AJAX possui muitos componentes que auxiliam no desenvolvimento da

aplicação, porém a API carece de uma melhor documentação quanto ao uso desses

componentes. A troca de banco de dados através do uso da JPA é muito simples de ser

realizada, o que viabiliza o porte da aplicação para outros bancos de dados.

Com a utilização dessas tecnologias obteve-se êxito na implementação de um protótipo

para controle de projetos e tarefas, permitindo que a aplicação seja acessada em um navegador

web. Em termos de limitações, o protótipo não possui um detalhamento grande das entidades

da aplicação, como muitas informações sobre as empresas e colaboradores, tais como

especializações do funcionário e profissão. Também não possui relatórios nem gráficos para

que se possa fazer um acompanhamento das atividades.

A maior facilidade encontrada na elaboração deste trabalho foi em relação à escolha

das ferramentas utilizadas para desenvolvimento de páginas web em Java, já que no mercado

existem inúmeras ferramentas que auxiliam os desenvolvedores na criação de sistemas web.

Tais ferramentas atenderam adequadamente no desenvolvimento da aplicação.

A maior dificuldade enfrentada durante a elaboração deste trabalho foi encontrar

material adequado e amplo para o estudo das técnicas AJAX através 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 renderização de

páginas XHTML, o que acabou inviabilizando o uso de templates. Também houve grande

dificuldade aos erros de código reportados pela JPA que não indicavam adequadamente o

motivo de determinado erro.

A JSF, AJAX, JPA possibilitam o desenvolvimento de aplicações com maior controle

de código, devido à separação da camada de visualização e das regras de negócios da

aplicação, bem como o desenvolvimento de telas mais práticas e rápidas com o uso de AJAX,

bem como a facilidade e independência na escolha do banco de dados para persistência dos

dados.

Page 67: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

66

4.1 EXTENSÕES

Entre possíveis extensões para este trabalho, destacam-se:

a) utilização de mais recursos e componentes AJAX através do uso do RichFaces, ou

de outra API AJAX, como IceFaces, Tomahawk ou ADF;

b) criar funcionalidades novas como relacionamento de ordem de executação das

atividades, cadastros de profissão, plano de métricas, riscos do projeto, cadastro de

especializações e recurso de PERT/CPM;

c) criar relatórios e gráficos para as telas;

d) criar sistema de backup da aplicação e sistema para transferência das informações

de um banco de dados para outro;

e) melhorar a interface gráfica com o usuário e as diferenças de renderização da tela

entre o Internet Explorer e o Firefox;

f) possibilitar a gerência de projetos de softwares;

g) integração com outras ferramentas para a extração de projetos e atividades, como

por exemplo o Microsoft Project;

h) permitir que os dados da aplicação sejam persistidos em arquivos XML.

Page 68: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

67

REFERÊNCIAS BIBLIOGRÁFICAS

APACHE GROUP. Apache Tomcat. [S.l.], [2008?]. Disponível 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, São Paulo, n. 44, p. 28, 2007.

BURKE, Bill; MONSON-HAEFEL, Richard. Enterprise javebeans 3.0. São Paulo: Pearson Prentice Hall, 2007.

CARMO, Raquel. Enterprise JavaBeans 3.0: passo a passo. [S.l.], [2008?]. Disponível 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?]. Disponível 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?]. Disponível em: <http://www.javanoroeste.com.br/tech_days_votuporanga/palestras/Java_Persistence_API.pdf>. Acesso em: 20 abr. 2008.

GONÇALVES, Edson. Desenvolvendo aplicações web com JSP, servlets, JavaServer Faces. Rio de Janeiro: Ciência Moderna, 2007.

JBOSS. JBoss Ajax4JSF. [S.l.], [2008a]. Disponível em: <http://www.jboss.org/jbossajax4jsf/>. Acesso em: 30 dez. 2007.

JBOSS. JBoss RichFaces. [S.l.], [2008b]. Disponível em: <http://www.jboss.org/jbossrichfaces/>. Acesso em: 20 maio. 2008.

JCP. JSR-000220 Enterprise JavaBeans 3.0. [S.l.], [2008?]. Disponível 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.

Page 69: PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2008-I/2008-1-22-vf-laerciolphardock.pdf · Therefore, the work was developed being based on the JEE architecture,

68

MELO, Eduardo da Fonseca. WebManager - Uma ferramenta para gerência de projetos de software baseada no Rational Unified Process . 2000. 67 f. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - Centro de Informática, Universidade Federal de Pernambuco, Recife.

NETBEANS.ORG. Netbeans. [S.l.], [2007?]. Disponível em: <http://www.netbeans.org/>. Acesso em: 15 jan. 2008.

ORACLE. Oracle 10G Express. [S.l.], [2008?]. Disponível em: <http://www.oracle.com/pls/xe102/homepage>. Acesso em: 15 jan. 2008.

SACRAMENTO, Wendell Miranda. Introdução à Java Persistence API – JPA. [S.l.], [2008?]. Disponível em: < http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=4590>. Acesso em: 10 jan. 2008.

SCHUMACKER, Adilson. Gestão de outsourcing na Bunge Alimentos S.A.. 2005. 75 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) - Centro de Ciências 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?]. Disponível 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]. Disponível em: <http://java.sun.com/javaee/>. Acesso em: 01 jan. 2008.

SUN. JavaServer Faces technology. [S.l.], [2008b]. Disponível em: <http://java.sun.com/javaee/javaserverfaces/>. Acesso em: 01 jan. 2008.

THE HSQLDB DEVELOPER GROUP. Hsqldb - 100% Java Database. [S.l.], [2008?]. Disponível em: <http://www.hsqldb.org/>. Acesso em: 15 jan. 2008.

VIEIRA, Marconi F. Gerenciamento de projetos: de tecnologia da informação. Rio de Janeiro: Campus, 2003.