• Nenhum resultado encontrado

PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE

N/A
N/A
Protected

Academic year: 2021

Share "PROTÓTIPO DE UM SISTEMA DE GERENCIAMENTO DE PROJETOS E ATIVIDADES UTILIZANDO JEE"

Copied!
69
0
0

Texto

(1)

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

(2)

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

(3)

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

(4)

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.

(5)

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.

(6)

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

(7)

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.

(8)

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.

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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).

(15)

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.

(16)

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.

(17)

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

(18)

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

(19)

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.

(20)

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.

(21)

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

(22)

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

(23)

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.

(24)

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.

(25)

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).

(26)

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.

(27)

26

O sistema controla o cadastro de profissionais, fornecedores, serviços prestados, projetos e atividades concluídas e abertas.

(28)

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;

(29)

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

(30)

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.

(31)

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.

(32)

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;

(33)

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.

(34)

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.

(35)

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;

(36)

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.

(37)

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

(38)

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.

(39)

38

3.5 DIAGRAMA DE ATIVIDADES

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

(40)

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.

(41)

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.

(42)

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.

(43)

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

(44)

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.

(45)

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.

(46)

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.

(47)

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.

(48)

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.

(49)

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.

(50)

49

(51)

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.

(52)

51

(53)

52

(54)

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.

(55)

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

(56)

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.

(57)

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.

(58)

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.

(59)

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

(60)

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

(61)

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.

(62)

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

(63)

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

(64)

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

(65)

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.

Referências

Documentos relacionados

Além disso, a falta de esclarecimento de toda a comunidade escolar sobre sua importância para a melhoria do desempenho dos educandos também contribuiu para que os pais não o

O trabalho intitulado PROJETO DE INTERVENÇÃO SOBRE A IMPLANTAÇÃO DA SISTEMATIZAÇÃO DA ASSISTÊNCIA DE ENFERMAGEM (SAE) PARA PACIENTES COM DIABETES MELLITUS NO

Little e Amyra El Khalili; também foi dissertado sobre a Agroecologia, entendida como um caminho para uma agricultura mais sustentável; sobre a ciência homeopatia e sua aplicação

Uma das vacinas implementadas a nível mundial para o controle de complicações é a vacina contra o papilomavírus humano, fornecida com o intuito de diminuir a incidência

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

 Condições insalubres no ambiente de trabalho  Superexploração do trabalho feminino e infantil  Ausência completa de qualquer assistência

Antes de ingressar na sociedade em 2014, trabalhou na “Raposo Subtil e Associados - Sociedade de Advogados, R.L.”, entre 2013 e 2014, e na “Nuno Cerejeira Namora, Pedro