Anda di halaman 1dari 76

MINISTRIO DA EDUCAO UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CAMPUS CORNLIO PROCPIO CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SISTEMAS

CLODOALDO AUSEC LUDWIG

SGCPEM/JFL Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais (verso Java e Ferramentas de uso Livre)

CORNLIO PROCPIO 2007

MINISTRIO DA EDUCAO UNIVERSIDADE FEDERAL TECNOLGICA DO PARAN CAMPUS CORNLIO PROCPIO CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SISTEMAS

CLODOALDO AUSEC LUDWIG

SGCPEM/JFL Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais (verso Java e Ferramentas de uso Livre)

Trabalho acadmico apresentado na disciplina de Trabalho de Diplomao. Universidade Tecnolgica Federal do Paran Campus Cornlio Procpio.

Orientador: Prof. Ms. Fabrcio Martins Lopes

CORNLIO PROCPIO 2007

DEDICATRIA

Dedico este trabalho aos meus pais Miguel e Darciana, a minha noiva Ana e a minha av Nair em memria.

AGRADECIMENTOS A Deus, por permitir a minha existncia e a concluso deste trabalho. Aos meus pais Miguel e Darciana, que sempre me apiam de todas as formas possveis e em todos os momentos bons e ruins da minha vida. A minha noiva Ana, por compreender os momentos em que precisei estar ausente. A minha av Nair, em memria, por me oferecer a sua sabedoria na forma de belos conselhos que levarei para o resto da vida. Ao meu orientador Prof. Fabrcio, pela orientao, pacincia, incentivo, e fora ofertados durante todo o tempo at a concluso deste trabalho. Aos meus colegas e amigos de curso, que sempre me respeitaram e contriburam para a minha formao.

ii

LISTA DE FIGURAS
Figura 1. Figura 2. Figura 3. Figura 4. Figura 5. Figura 6. Figura 7. Figura 8. Figura 9. Figura 10. Figura 11. Figura 12. Figura 13. Figura 14. Figura 15. Figura 16. Figura 17. Figura 18. Figura 19. Figura 20. Figura 21. Figura 22. Figura 23. Figura 24. Figura 25. Figura 26. Figura 27. Figura 28. Figura 29. Figura 30. Figura 31. Figura 32. Figura 33. Figura 34. Figura 35. Figura 36. Figura 37. Figura 38. Figura 39. Figura 40. Figura 41. Figura 42. Figura 43. Figura 44. Figura 45. Figura 46. Figura 47. Figura 48. Figura 49. Figura 50. Figura 51. Figura 52. Figura 53. Figura 54. Representao ciclo de vida incremental e iterativo do SGCPEM/JFL ....................................... 5 Unidade de Produo do CCNP.................................................................................................. 6 Fluxograma do Conjunto de Britagem......................................................................................... 7 Fluxograma de Produo da Usina de Asfalto ............................................................................ 8 Fluxograma de Produo da Usina de Solos .............................................................................. 8 Diagrama de Pacotes................................................................................................................ 11 Casos de Uso do Mdulo Produo.......................................................................................... 13 Casos de Uso do Mdulo Estoque ............................................................................................ 16 Casos de Uso do Mdulo Carreteiros ....................................................................................... 18 Diagrama de Seqncia Abastecer Britador Primrio ............................................................... 21 Diagrama de Seqncia Produz Racho .................................................................................. 22 Diagrama de Seqncia Estabelece Densidade dos Materiais ................................................. 22 Diagrama de Seqncia Produz Pedras Pequenas .................................................................. 23 Diagrama de Seqncia Calcula Produo de Pedras Pequenas ............................................ 24 Diagrama de Seqncia Produz Massa Asfltica...................................................................... 24 Diagrama de Seqncia Produz Brita Graduada ...................................................................... 25 Diagrama de Seqncia Atualiza Estoque pelo Usurio ........................................................... 26 Diagrama de Seqncia Atualiza Estoque pelo Subsistema Produo .................................... 26 Diagrama de Seqncia Atualiza Estoque pelo Subsistema Carreteiros .................................. 27 Diagrama de Seqncia Consulta Estoque pelo Usurio.......................................................... 27 Diagrama de Seqncia Consulta Estoque pelo Subsistema Carreteiros................................. 28 Diagrama de Seqncia Solicita Material.................................................................................. 28 Diagrama de Seqncia Determina Local de Carga/Descarga ................................................. 29 Diagrama de Seqncia Transporta Material............................................................................ 30 Diagrama de Seqncia Contrata Carreteiro ............................................................................ 30 Diagrama de Seqncia Transporta Material com Contrato ..................................................... 31 Diagrama de Seqncia Determina Preo para Tipo de Material ............................................. 32 Diagrama de Seqncia Apropria Desconto ............................................................................. 32 Diagrama de Seqncia Calcula Medio de Produo ........................................................... 34 Diagrama de Classe do SGCPEM/JFL ..................................................................................... 36 Diagrama de Classe do Mdulo Produo................................................................................ 38 Diagrama de Classe do Mdulo Estoque .................................................................................. 39 Diagrama de Classe do Mdulo Carreteiros ............................................................................. 40 Diagrama de Implantao do SGCPEM/JFL ............................................................................. 41 Modelo objeto-relacional do SGCPEM/JFL ............................................................................... 43 Arquitetura cliente/servidor em trs camadas ........................................................................... 44 Estrutura de Pacotes Netbeans................................................................................................. 45 Estrutura de Pastas Camada Interface do Usurio ................................................................... 45 Tela de Login (index.jsp) ........................................................................................................... 47 Pgina Inicial do Sistema (home.jsp) ........................................................................................ 50 Menu Sistema ........................................................................................................................... 50 Menu Produo ......................................................................................................................... 51 Menu Estoque ........................................................................................................................... 51 Menu Carreteiros....................................................................................................................... 52 Tela de Cadastro de Material .................................................................................................... 53 Mensagem de Erro de Campos Obrigatrios ............................................................................ 53 Tela de Listagem de Material .................................................................................................... 54 Tela de Alterao de Material.................................................................................................... 54 Tela de Excluso de Material .................................................................................................... 55 Tela de Consulta de Material..................................................................................................... 55 Tela Resultado da Consulta de Material ................................................................................... 56 Relatrio de Caminho Basculante de Produo...................................................................... 57 Relatrio de Medio de Carreteiro Contratado ........................................................................ 59 Cronograma real de execuo do projeto ................................................................................. 63

iii

LISTA DE CDIGOS FONTES


Cdigo Fonte 1. Cdigo Fonte 2. Cdigo Fonte 3. Cdigo Fonte 4. Cdigo Fonte 5. Cdigo Fonte 6. Cdigo Fonte 7. Verificao de Autenticao do Usurio .......................................................................... 47 Redirecionamento do Formulrio para a Pgina de Processamento............................... 47 Pgina plogin.jsp ............................................................................................................. 48 Mtodo conectaPostgresql() da classe Banco.java ......................................................... 49 Mtodos isUsuario() e isSenhaCorreta() da classe LoginBean.java................................ 49 Cdigo JSP para Emisso do Relatrio Caminho Basculante em PDF......................... 58 Cdigo JSP para Emisso da Medio de Carreteiro Contratado em JasperViewer ...... 60

iv

LISTA DE ABREVIATURAS E SIGLAS


BSD CBUQ CCNP CSR ECONORTE HTML IDE JSP PDF Prof. RAM SGBD SGCPEM SGCPEM/JFL Berkeley Software Distribution Concreto Betuminoso Usinado Quente Consrcio Construtor do Norte do Paran Consrcio de Servios Rodovirios Empresa Concessionria de Rodovias do Norte S/A HyperText Markup Language Integrated Developement Environment Java Server Pages Portable Document Format Professor Random Access Memory Sistema Gerenciador de Banco de Dados Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais (verso Java e Ferramentas de uso Livre) SQL UML Structured Query Language Unified Modeling Language

SUMRIO
LISTA DE FIGURAS .............................................................................................................................................. III LISTA DE CDIGOS FONTES ..............................................................................................................................IV LISTA DE ABREVIATURAS E SIGLAS .................................................................................................................V 1 2 3 4 INTRODUO ............................................................................................................................................... 1 OBJETIVOS................................................................................................................................................... 2 JUSTIFICATIVA............................................................................................................................................. 3 METODOLOGIA ............................................................................................................................................ 4 4.1 4.1.1 4.1.2 4.1.3 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.2.2.3 4.2.3 4.2.3.1 4.2.3.2 4.2.3.3 4.2.4 4.2.4.1 4.2.4.2 4.2.4.3 4.2.5 4.3 4.4 4.5 4.6 4.7 5 6 7 LEVANTAMENTO DE REQUISITOS ............................................................................................................... 5 Produo..................................................................................................................................... 6 Estoque ....................................................................................................................................... 9 Carreteiros................................................................................................................................. 10 ANLISE DE SISTEMAS ........................................................................................................................... 11 Diagrama de Pacotes................................................................................................................ 11 Diagrama de Casos de Uso ...................................................................................................... 12 Casos de Uso do Mdulo Produo ................................................................................ 12 Casos de Uso do Mdulo Estoque .................................................................................. 16 Casos de Uso do Mdulo Carreteiros .............................................................................. 17 Diagrama de Seqncia............................................................................................................ 20 Diagramas de Seqncia do Mdulo Produo............................................................... 21 Diagramas de Seqncia do Mdulo Estoque................................................................. 25 Diagramas de Seqncia do Mdulo Carreteiros ............................................................ 28 Diagrama de Classe.................................................................................................................. 35 Diagrama de Classe do Mdulo Produo ...................................................................... 37 Diagrama de Classe do Mdulo Estoque......................................................................... 39 Diagrama de Classe do Mdulo Carreteiros .................................................................... 39 Diagrama de Implantao ......................................................................................................... 41 PROJETO .............................................................................................................................................. 42 IMPLEMENTAO ................................................................................................................................... 44 TESTES ................................................................................................................................................ 60 IMPLANTAO E TREINAMENTO ............................................................................................................... 61 ANLISE DOS RESULTADOS .................................................................................................................... 61

CRONOGRAMA .......................................................................................................................................... 62 CONSIDERAES FINAIS ......................................................................................................................... 64 REFERNCIAS BIBLIOGRFICAS ............................................................................................................ 65

APNDICE A TABELAS DO BANCO DE DADOS (ORDEM ALFABTICA) ................................................... 67 APNDICE B PROPOSTA DO TRABALHO DE DIPLOMAO ...................................................................... 68

vi

INTRODUO

O Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais (SGCPEM) um sistema de informao que foi concludo originalmente em outubro de 2004, visando atender as necessidades especficas da empresa Consrcio de Servios Rodovirios (CSR) nas atividades de controle de produo, estoque e transporte de material realizado por carreteiros. No incio de 2006 a CSR passou por algumas transformaes de ordem administrativa e teve a razo social alterada, a qual passou a ser Consrcio Construtor do Norte do Paran (CCNP). A CCNP tem sua sede na cidade de Ibipor, estado do Paran, e presta servios de construo, manuteno e conservao de rodovias de forma exclusiva para a Empresa Concessionria de Rodovias do Norte S/A (ECONORTE). Um dos princpios fundamentais conservados e seguidos pela CCNP o de cumprir rigorosamente a lei, dessa forma, os administradores da empresa no se sentiam confortveis pelo fato do sistema SGCPEM no ser licenciado, uma vez que alguns dos recursos de software utilizados para o seu desenvolvimento no possuam licena. Para resolver esta questo foram estudadas e apresentadas duas solues: a aquisio das licenas para legalizao dos softwares utilizados no desenvolvimento ou o desenvolvimento completo de um novo sistema usando recursos de software livre. Discutidas essas alternativas, a CCNP optou pelo desenvolvimento do novo sistema, justificando que a empresa no atua na rea de desenvolvimento de sistemas, tornando inapropriada e invivel a aquisio de licenas para softwares dessa natureza. Neste contexto, esta monografia descreve os aspectos envolvidos no desenvolvimento da nova verso do sistema, utilizando recursos de software livre para solucionar problemas de licenciamento inerentes verso original. Esta nova verso passou a ser chamada de Sistema para Gerenciamento de Carreteiros, Produo e Estoque de Materiais (verso Java e Ferramentas de uso Livre) (SGCPEM/JFL), na qual foram desenvolvidas novas funcionalidades e aprimoradas as j existentes, como ser discutido na seo 4.

OBJETIVOS

GERAL: Desenvolvimento do SGCPEM/JFL utilizando ferramentas de livre utilizao, para que o sistema possa ser utilizado pela CCNP sem impeditivos legais.

ESPECFICO: Desenvolver o sistema em mdulos, assim como foi feito no desenvolvimento da verso original do sistema, sendo: produo, estoque e carreteiros; Desenvolver novas funcionalidades, dentre elas destaque para a emisso automtica da medio dos servios prestados pelos carreteiros, uma vez que na verso original do sistema esta funcionalidade no foi desenvolvida e a medio tinha quer ser feita em planilha de clculo; Tornar o sistema portvel, ao contrrio da verso original que podia ser instalada apenas no sistema operacional Windows, o SGCPEM/JFL pode ser instalado tanto em Windows quanto Linux; Facilitar o acesso do usurio, o qual acessa o sistema por meio de um navegador responsvel apenas por exibir a interface ao usurio, sem necessidade de instalao e configurao alguma do lado do cliente; Implantar o sistema em um servidor local da empresa, deixando-o disponvel apenas para a intranet.

JUSTIFICATIVA

A tendncia natural das empresas que atuam em segmentos especializados e no atuantes no ramo da informtica a de, sempre quando for necessria a utilizao de um software para sistematizar os processos de trabalho, contratar empresas especializadas para desenvolver o sistema conforme as suas necessidades reais. A coincidncia da necessidade de adquirir um software especfico para aperfeioar determinados processos de trabalho com a presena de uma pessoa da rea de informtica em seu quadro de funcionrios, mesmo que colaborando em outro setor, possibilitou e levou a empresa a aderir idia de permitir o desenvolvimento interno, o que beneficiou ambas as partes. Apesar do sucesso alcanado aps o trmino do desenvolvimento do SGCPEM, o maior questionamento da CCNP era o de no ser permitido o uso legal do produto final por questes de licenciamento de determinadas ferramentas utilizadas durante o desenvolvimento. A legalizao do sistema seria possvel apenas se fossem adquiridas as licenas para os seguintes softwares: Rational Rose 2000; Borland Delphi 7 Enterprise Edition; DeZign for Databases 3.1.4; IBExpert 2.5.0.42. A aquisio de tais licenas no foi encarada como uma soluo, j que no seriam aproveitadas pela empresa pelo fato de no existir expectativa alguma em relao ao desenvolvimento de novos sistemas. Sendo assim, a soluo mais coerente foi desenvolver o SGCPEM/JFL com ferramentas e recursos que no probam a utilizao comercial e de forma legalizada do software pela empresa. A necessidade do desenvolvimento completo de uma nova verso do SGCPEM foi uma tima oportunidade para identificar, apontar e justificar as vantagens e desvantagens encontradas durante o processo de desenvolvimento em relao a todos os recursos utilizados, destacando o ciclo de vida do software, o banco de dados e a linguagem de programao, j que os mesmos foram diferentes daqueles utilizados no desenvolvimento da primeira verso do sistema. Nas sees a seguir, alm de demonstrar essas comparaes sero apresentadas tambm todas as etapas do processo de desenvolvimento do SGCPEM/JFL.

METODOLOGIA

O SGCPEM/JFL um sistema de informao tpico que deve oferecer meios para a manuteno, consulta e processamento dos dados. A disposio desses dados deve ser centralizada em um servidor que recebe requisies e as responde aos clientes, sendo que estes consistem apenas na interface amigvel ao usurio para a manipulao e processamento dos dados, este processo denominado modelo cliente-servidor e foi adotado no desenvolvimento do SGCPEM/JFL. A sua disposio em trs camadas: interface de usurio, regras de negcio e servios de dados [SADOSKI, 2004]. A primeira camada, conhecida como interface de usurio responsvel por prover todos os servios necessrios para o usurio interagir com o sistema. Na segunda camada, denominada regras de negcios, no h implementao de interface com usurio, ela manipula apenas dados volteis que podem ser variveis ou parmetros obtidos no banco de dados ou serem armazenados no mesmo, manipulados temporariamente e s quando necessrio pela memria Random Access Memory (RAM), atendendo a solicitaes de alocao da camada de regras de negcio. A terceira e ltima camada a de servios de dados, a qual consiste na manuteno dos dados e no relacionamento entre eles, envolvendo a interface de acesso e armazenamento dos mesmos pelo banco de dados. O processo de desenvolvimento do software foi subsidiado pelo ciclo de vida incremental e iterativo [PRESSMAN, 2002] e comportou as etapas apresentadas na Figura 1, a qual representa um modelo deste ciclo de vida adaptado especialmente para o desenvolvimento do SGCPEM/JFL.

Figura 1. Representao ciclo de vida incremental e iterativo do SGCPEM/JFL

O SGCPEM dividido em trs mdulos ou subsistemas, denominados Produo, Estoque e Carreteiros, sendo que foi realizada uma iterao do ciclo de vida no desenvolvimento de cada mdulo, ou seja, trs iteraes no total. Visando facilitar o desenvolvimento do SGCPEM/JFL, esses subsistemas foram tratados de forma individual e a integrao dos mesmos ocorreu durante o desenvolvimento. 4.1 LEVANTAMENTO DE REQUISITOS

No levantamento dos requisitos do software foi utilizada a tcnica de entrevista com o usurio, a exemplo do desenvolvimento da verso anterior, sendo que o levantamento anterior tambm foi considerado no desenvolvimento da nova verso, entretanto, todas as perguntas foram revisadas, e novas perguntas foram elaboradas buscando ampliar o entendimento das necessidades do usurio. A seguir apresentado todo o levantamento de requisitos de forma explicativa, elaborado a partir da entrevista com o usurio e da convivncia no ambiente empresarial, para facilitar a compreenso de cada mdulo do sistema que foi desenvolvido.

4.1.1 Produo

A CCNP produz os materiais em uma pedreira, e para que haja a produo dos materiais uma unidade industrial projetada e instalada nesta pedreira. A unidade industrial composta essencialmente por um conjunto de britagem, este composto pelos equipamentos britador primrio e britador secundrio, e opcionalmente por outros equipamentos de produo que a empresa necessite, no caso da CCNP so utilizados ainda um equipamento denominado usina de asfalto e outro usina de solos. O britador primrio produz o material racho, uma espcie de pedra de tamanho grande, resultante da quebra da rocha extrada da pedreira, o britador secundrio produz os materiais brita 02, brita 01 e pedrisco com p, todos estes materiais so resultados da quebra do material detonado e o que os diferem entre si apenas o seu tamanho, alm disso, estes materiais pertencem a um mesmo tipo de material chamado de agregados. A Figura 2 mostra como uma unidade de produo do CCNP.

Figura 2. Unidade de Produo do CCNP

Conforme pode ser observado no fluxograma da Figura 3, a produo de materiais do conjunto de britagem inicia a partir do transporte da rocha detonada na pedreira para o primeiro equipamento de produo, denominado britador primrio. Este transporte realizado por um caminho basculante carregado por uma p-carregadeira e descarregado no britador primrio, e este, por sua vez,

executa o trabalho de quebra do material detonado transformando-o em um material um pouco menor denominado racho.

Figura 3. Fluxograma do Conjunto de Britagem

Em seguida, o britador primrio envia o racho para uma correia transportadora que liga ao equipamento britador secundrio. O britador secundrio tambm executa um processo de quebra do material, mas ele possui um sistema de separao dos materiais de acordo com o tamanho, produzindo trs materiais distintos: brita 02, brita 01 e pedrisco com p. A quantidade produzida depende da regulagem do equipamento e da quantidade de horas que o mesmo opera. Analisando os fluxogramas da Figura 4 e Figura 5, pode-se constatar que a usina de asfalto e a usina de solos tm o fluxograma de produo semelhante. Os materiais obtidos do processo de britagem so retirados do estoque para servirem de matria prima para a produo de outros tipos de materiais, tanto pela usina de asfalto quanto pela usina de solos.

Figura 4. Fluxograma de Produo da Usina de Asfalto

Figura 5. Fluxograma de Produo da Usina de Solos

Todo o material produzido por qualquer uma das usinas imediatamente transportado e aplicado obra, pois sua composio no permite o estoque. A usina de asfalto produz materiais do tipo massa asfltica, que so utilizados para fazer a pavimentao de estradas. A usina de solos produz o material brita graduada, bem como algumas variaes do mesmo, dentre estas a mais

utilizada a brita graduada simples e a brita graduada tratada com cimento. A brita graduada tambm utilizada na pavimentao de estradas e se comporta como uma camada base para a aplicao posterior da camada de asfalto. Assim como os materiais produzidos pelo conjunto de britagem, estes produzidos pela usina de solos tambm so classificados como materiais do tipo agregados.

4.1.2 Estoque

A CCNP faz o estoque apenas dos materiais produzidos pelo britador secundrio, ou seja, brita 02, brita 01 e pedrisco com p. Como pode ser observado na Figura 3, aps a produo realizada pelo britador secundrio, os materiais so estocados automaticamente. A quantidade de material estocado depende diretamente da produo, e para conhec-la necessrio saber as propriedades dos materiais de cada unidade industrial. As propriedades dos materiais dependem apenas do tipo de rocha que extrada da pedreira, por isso no se alteram, a propriedade mais importante e utilizada no clculo da produo a densidade. Portanto, para efetuar o clculo da quantidade dos materiais estocados, leva-se em considerao o valor da densidade de cada material, bem como o valor de uma medio realizada freqentemente pelo laboratorista no equipamento britador secundrio, com o objetivo de determinar a quantidade produzida de cada material em toneladas por hora trabalhada. A atualizao de entrada de materiais no estoque, como mencionado no pargrafo anterior, acontece automaticamente como resultado da produo dos materiais pelo britador secundrio, mas no apenas desta forma que pode ocorrer a entrada de materiais no estoque. Em determinadas situaes possvel que a capacidade de produo da unidade industrial no seja suficiente para atender as necessidades das obras em andamento, dessa forma, pode haver a necessidade de a empresa efetuar a compra desses materiais. Para controlar a entrada dos materiais oriundos de compra, esta registrada em um documento impresso chamado vale-carreteiro, assim possvel manter o estoque atualizado. Sempre que determinado material retirado do estoque tambm preenchido o vale-carreteiro registrando todos os dados relevantes para o controle

10

de sua sada. Alm de registrar a data, o nome e a quantidade do material retirado, ainda registrado a hora, a placa do caminho, qual o destino previsto e quem solicitou o material. Com todos estes dados preenchidos possvel ter controle sobre a sada de materiais do estoque que atualizada pelo registro dos valescarreteiro.

4.1.3 Carreteiros

Para efetuar o transporte dos materiais, tanto os que so produzidos quanto os que so comprados, a CCNP conta com a colaborao dos carreteiros, que em sua maioria so pessoas fsicas, mas tambm podem ser pessoas jurdicas, que devem possuir um caminho basculante e que so contratados sob o regime de prestao de servios para efetuar o transporte de materiais. O foco desse mdulo justamente este tipo de carreteiro, o contratado, pois a empresa necessita registrar e controlar todos os transportes de materiais efetuados por cada um deles, e ento processar os registros para determinar os valores que a empresa deve pagar a cada um. Mas no so apenas estes carreteiros que transportam materiais da CCNP, ainda existem os caminhes de propriedade da prpria empresa e de empresas terceiras, como por exemplo, os subempreiteiros, para os quais a empresa geralmente fornece os materiais. Ento, independentemente de quem efetua o transporte o seu registro indispensvel para que a empresa consiga controlar a retirada dos materiais, e quem retira os materiais. Na contratao do carreteiro elaborado um contrato de prestao de servios para regulamentar os direitos e as obrigaes de cada parte, tanto do carreteiro quanto da empresa. Os dados mais importantes deste contrato firmado entre as partes para este mdulo so os dados pessoais, incluindo nome e documentos de identificao, os dados do caminho utilizado para o transporte, o valor combinado para pagamento pelos servios prestados e o nmero e prazo do contrato. A partir de ento se torna possvel a identificao do carreteiro contratado para que cada transporte seja adequadamente registrado no vale-carreteiro, e a administrao saiba quem realizou o servio para o posterior pagamento. A CCNP pode fornecer determinados materiais para os carreteiros contratados, e no ato do fechamento das contas dos servios prestados, descontar

11

tudo o que foi fornecido dos valores a pagar ao carreteiro. Dessa forma, alm de controlar todos os transportes, so controlados tambm todos os descontos de materiais fornecidos aos carreteiros, registrando a identificao do carreteiro contratado, o material fornecido, a data, o nome, a quantidade e o valor do material.

4.2

ANLISE DE SISTEMAS

No processo de desenvolvimento do software todas as etapas so relevantes, e a anlise de sistemas crucial para que o software possa sair do papel e tenha qualidade final. O SGCPEM/JFL foi desenvolvido em sua fase de anlise de sistemas por meio da tcnica de anlise orientada a objetos, acompanhada pela linguagem de modelagem Unified Modeling Language (UML) [BOOCH, RUMBAUGH e JACOBSON, 1998] e a respectiva ferramenta de anlise Visual Paradigm for UML Community Edition [VPUML, 2005]. Dentre os diagramas modelados na fase de anlise de sistemas esto o diagrama de pacotes, o diagrama de casos de uso, o diagrama de seqncia, o diagrama de classe e o diagrama de implantao, os quais so apresentados a seguir.

4.2.1 Diagrama de Pacotes

Figura 6. Diagrama de Pacotes

12

O diagrama de pacotes mostrado na Figura 6 foi modelado dividindo-se o sistema em trs mdulos, produo, estoque e carreteiros. Alm de criar trs pacotes para estes mdulos do sistema ainda foram criados mais dois pacotes, um com o nome de extras que contm tudo que se refere autenticao ou login no sistema, e outro chamado banco que contm aquilo que se refere conexo ao banco de dados.

4.2.2 Diagrama de Casos de Uso

Os casos de uso foram modelados no mais alto nvel, procurando permitir uma visualizao lgica e de fcil entendimento de todo o comportamento de cada mdulo do sistema, assim como sua dependncia a outro(s) mdulo(s). Na forma apresentada, os casos de uso podem ser lidos e entendidos facilmente por qualquer pessoa envolvida. Nas sees 4.2.2.1, 4.2.2.2 e 4.2.2.3 sero apresentados e descritos de maneira sucinta os casos de uso de cada mdulo.

4.2.2.1 Casos de Uso do Mdulo Produo

A Figura 7 apresenta os casos de uso do mdulo produo e tambm suas interaes e relaes de dependncia com os mdulos estoque e carreteiros, nesta seo sero descritos apenas os casos de uso do mdulo produo.

- Caso de Uso Abastecer Britador Primrio: O abastecimento do britador primrio realizado diariamente com rocha detonada, o transporte deste material feito pelo caminho basculante. O caminho basculante tem uma capacidade de carga fixa e pr-definida, numa mesma data ele pode efetuar inmeras viagens de transporte de material. Portanto, o caso de uso Abastecer Britador Primrio responsvel por controlar o nmero de viagens que o(s) caminho(es) basculante(s) fazem numa determinada data, sendo a capacidade de carga de cada caminho importante para saber a quantidade de rocha detonada transportada para o britador primrio.

13

Figura 7. Casos de Uso do Mdulo Produo

14

- Caso de Uso Produz Racho: O caso de uso Produz Racho responsvel por efetuar o clculo, em um determinado perodo de tempo e por apenas uma ou todas as unidades industriais, da quantidade de material racho produzido pelo britador primrio, o qual efetuado a partir da quantidade de rocha detonada transportada para o britador primrio e o empolamento do racho em cada unidade industrial.

- Caso de Uso Estabelece Densidade dos Materiais: A densidade dos materiais estabelecida pelo laboratorista. O laboratorista efetua o clculo necessrio e obtm um valor numrico que representa a densidade de cada material produzido. Cada unidade industrial pode ter diferentes valores para a densidade do mesmo material, isto porque as caractersticas do solo podem variar entre as unidades industriais. O caso de uso Estabelece Densidade dos Materiais o responsvel por definir a densidade de cada material produzido por cada unidade industrial.

- Caso de Uso Calcula Empolamento do Material: O empolamento uma medida que visa corrigir o nmero de vazios existentes nas cargas da rocha detonada, para obter a quantidade real de material transportado para a produo. O clculo do empolamento do material efetuado de forma automtica pelo prprio sistema, isto ocorre logo aps o laboratorista definir a densidade do material. Dessa forma, este caso de uso efetua o clculo do empolamento do material baseado no valor de sua densidade.

- Caso de Uso Produz Pedras Pequenas: O britador secundrio o responsvel por produzir pedras menores do que o racho. A matria-prima para a produo desses materiais menores o racho proveniente da produo do britador primrio. O caso de uso Produz Pedras Pequenas tem o objetivo de controlar a quantidade de horas trabalhadas pelo britador secundrio em uma determinada data, pois este um dos dados necessrios para efetuar o clculo da produo de pedras pequenas, conforme explicado no caso de uso a seguir.

15

- Caso de Uso Calcula Produo de Pedras Pequenas: O equipamento britador secundrio possui um sistema de regulagem que permite o laboratorista configur-lo para produzir a quantidade de material por hora trabalhada, necessria para cada material, utilizando a unidade de medida em toneladas. As pedras pequenas produzidas pelo britador secundrio so brita 02, brita 01 e pedrisco com p. Este caso de uso controla a quantidade de material que deve ser produzida, regulada pelo laboratorista, e tambm calcula a quantidade de cada material produzido pelo britador secundrio em uma determinada data, como o clculo da produo deve ser em metros cbicos necessrio conhecer o valor da densidade de cada material para efetuar a converso de toneladas para metros cbicos.

- Caso de Uso Produz Massa Asfltica: A usina de asfalto o equipamento que produz os materiais do tipo massa asfltica, os materiais mais produzidos por este equipamento na poca do desenvolvimento do sistema eram o Concreto Betuminoso Usina a Quente (CBUQ), Massa Fina e Ecoflex. Todo o material do tipo massa asfltica produzido deve ser imediatamente transportado e aplicado na obra, isto porque devido a sua caracterstica este tipo de material no pode ser estocado. Este caso de uso faz o clculo da quantidade produzida de cada material do tipo massa asfltica em um determinado perodo, ele depende do caso de uso Transporta Material, pois a partir deste caso de uso que possvel conhecer as quantidades de materiais transportadas e conseqentemente produzidas.

- Caso de Uso Produz Brita Graduada: A usina de solos o equipamento que produz a brita graduada. Assim como os materiais racho, brita 02, brita 01 e pedrisco com p, a brita graduada tambm classificada como tipo agregado. A exemplo da massa asfltica, a brita graduada tambm no pode ser estocada devido s suas caractersticas, e assim que produzida imediatamente transportada e aplicada na obra. Portanto, este caso de uso muito parecido com o caso de uso Produz Massa Asfltica, ele tambm depende do caso de uso Transporta Material e sua funo calcular a quantidade de brita graduada produzida em um determinado perodo por uma unidade industrial.

16

4.2.2.2 Casos de Uso do Mdulo Estoque

Os casos de uso do mdulo estoque, bem como as relaes desses com os casos de uso dos mdulos produo e carreteiros, so apresentados na Figura 8. Segue descrio de cada caso de uso do mdulo Estoque:

- Caso de Uso Valida Material: Este caso de uso ocorrer apenas quando houver atualizao do estoque. Ele o responsvel por validar o material, ou seja, verificar se o controle de estoque realizado para o material que est sendo estocado.

Figura 8. Casos de Uso do Mdulo Estoque

- Caso de Uso Atualiza Estoque: A atualizao do estoque pode ocorrer de forma manual ou automatizada. Da forma manual o Topgrafo realiza a medio para conhecer a quantidade de material estocada e faz a atualizao dos valores obtidos. A forma automtica, como pode ser observada na Figura 8, ocorre a partir dos casos de uso Produz Pedras Pequenas, Produz Brita Graduada, Produz Massa Asfltica e Transporta Material. Na atualizao do estoque tambm necessrio conhecer a

17

quantidade atual em estoque para poder efetuar o clculo da soma da quantidade em estoque com o que foi adicionado ou subtrado pelos casos de uso relacionados. Portanto, o caso de uso Atualiza Estoque faz a atualizao do estoque de um determinado material que controlado, somando a quantidade de material existente com a quantidade informada de forma manual, ou retirada ou estocado automaticamente a partir dos casos de uso relacionados.

- Caso de Uso Consulta Estoque: O Laboratorista necessita realizar periodicamente a consulta ao estoque de materiais, o principal objetivo desta consulta conhecer qual o material que precisa ter a produo aumentada ou diminuda. A partir da informao do estoque o Laboratorista pode ento efetuar a regulagem do britador secundrio para produzir mais ou menos de um determinado material. Alm disso, no momento da atualizao do estoque necessrio conhecer a quantidade atual do estoque, neste caso este caso de uso tambm importante. O caso de uso Consulta Estoque responsvel por efetuar uma consulta no estoque de um ou mais materiais, obtendo dessa forma a quantidade atual de material estocado.

4.2.2.3 Casos de Uso do Mdulo Carreteiros

A Figura 9 mostra o diagrama de casos de uso do mdulo carreteiros, e tambm as relaes desses com os casos de uso dos mdulos produo e estoque. A seguir esto descritos cada caso de uso do mdulo carreteiros.

- Caso de Uso Solicita Material: O Solicitante analisa a necessidade do material para a execuo da obra e solicita o material. Este caso de uso responsvel por controlar as solicitaes de materiais, verificando a disponibilidade em estoque dos mesmos.

- Caso de Uso Determina Local de Carga/Descarga: O Solicitante faz o a pedido do material a uma determinada unidade industrial, determinando desta forma o local de carga. Ele tambm estabelece o local

18

de entrega do material transportado. Este caso de uso responsvel por controlar os locais de carga e descarga dos materiais solicitados, conforme determinado pelo solicitante.

Figura 9. Casos de Uso do Mdulo Carreteiros

- Caso de Uso Transporta Material: A partir dos dados da solicitao do material determinados pelo Solicitante, efetuado o transporte do material. Este caso de uso controla o transporte do material, e conforme a necessidade faz a atualizao do estoque e da produo dos materiais massa asfltica e brita graduada.

- Caso de Uso Contrata Carreteiro: O Engenheiro o responsvel por efetuar a contratao do carreteiro. Este caso de uso responsvel por controlar todos os carreteiros contratados, incluindo todos os dados necessrios contratao como os dados pessoais do carreteiro e os dados do caminho que o mesmo utiliza para fazer o transporte dos materiais.

19

- Caso de Uso Transporta Material com Contrato: Pode-se observar que o caso de uso Transporta Material com Contrato uma especializao da generalizao do caso de uso Transporta Material, portanto, ele tem a mesma descrio do caso de uso Transporta Material. Alm disso, este caso de uso controla todos os transportes de materiais efetuados por carreteiros contratados.

- Caso de Uso Determina Preo para Tipo de Material: O servio de transporte de materiais realizado pelos carreteiros contratados pago de acordo com o tipo do material transportado, agregado e massa asfltica. O preo para cada tipo determinado pelo Engenheiro e a unidade de medida utilizada para o clculo do servio de transporte a quantidade de toneladas multiplicada pela distncia percorrida, esta calculada somente para o trecho que o caminho rodou carregado de material. Ainda, definida pelo engenheiro a distncia mnima de transporte, a qual deve ser paga caso o transporte efetuado pelo carreteiro tenha uma distncia menor que esta. Este caso de uso controla os preos do servio de transporte de materiais pelos carreteiros contratados, definidos pelo engenheiro, bem como as distncias mnimas de transporte.

- Caso de Uso Calcula Valor do Transporte: Este caso de uso calcula o valor do transporte de material realizado pelo carreteiro contratado, o clculo realizado de acordo com o preo do tipo de material transportado, quantidade e distncia percorrida.

- Caso de Uso Apropria Desconto: O carreteiro, alm de ter valores a receber pelos servios prestados, tambm pode ter valores a pagar para a empresa, os quais devem ser abatidos nos valores prestados, estes descontos so principalmente materiais e servios realizados ou fornecidos pela empresa ao carreteiro. Por isso, o caso de uso Apropria Desconto controla todos os descontos apropriados pelo engenheiro para um determinado carreteiro contratado, para que no ato de efetuar a medio dos servios executados de um determinado perodo, os descontos sejam abatidos do valor bruto totalizado na medio de produo.

20

- Caso de Uso Calcula Medio de Produo A medio de produo calculada em um determinado perodo pelo engenheiro, totalizando todos os transportes efetuados pelo carreteiro referente a um contrato. Na medio de produo abatido do valor bruto o valor totalizado da medio de descontos, obtendo assim o clculo do valor lquido devido ao carreteiro.

- Caso de Uso Calcula Medio de Descontos: A medio de descontos calculada em um determinado perodo e contrato estendido do caso de uso Calcula Medio da Produo, totalizando todos os descontos, para ser descontada da respectiva medio de produo.

4.2.3 Diagrama de Seqncia

Foi modelado o diagrama de seqncia para cada caso de uso apresentado na seo anterior. importante notar que foram criados e utilizados esteretipos personalizados para identificar o tipo de cada objeto no diagrama de seqncia, so eles: <<Controller>> : representa um arquivo Java Server Page [JSP] utilizado como um controlador de requisies e respostas; <<Class>> : representa uma classe da linguagem Java; <<Form>> : representa um formulrio codificado em JSP, que se misturam as linguagens HyperText Markup Language [HTML] e JSP; <<Database>> : representa o banco de dados; <<Subsystem>> : representa um mdulo do sistema; <<Report>> : representa um objeto da ferramenta JasperReports

[JASPERREPORTS] para emisso de relatrios. Na seo 4.2.3.1 so apresentados e descritos diagramas de seqncia dos casos de uso do mdulo produo.

21

4.2.3.1 Diagramas de Seqncia do Mdulo Produo

A Figura 10 mostra o diagrama de seqncia Abastecer Britador Primrio, onde a viagem de rocha detonada realizada pelo caminho basculante includa no sistema pelo usurio.

Figura 10. Diagrama de Seqncia Abastecer Britador Primrio

O diagrama de seqncia Produz Racho conforme a Figura 11, mostra como a seqncia de mensagens para efetuar o clculo da produo do material racho, num determinado perodo e unidade industrial informados pelo usurio. O diagrama de seqncia da Figura 12, Estabelece Densidade dos Materiais, alm de contemplar a seqncia do caso de uso respectivo, mostra tambm que ao longo da seqncia existe a necessidade de chamada ao mtodo calcula empolamentos, de forma que seja calculado o empolamento para cada material produzido na unidade industrial, com base nas densidades informadas.

22

Desse modo, o mtodo calcula empolamentos refere-se ao caso de uso Calcula Empolamento do Material.

Figura 11. Diagrama de Seqncia Produz Racho

Figura 12. Diagrama de Seqncia Estabelece Densidade dos Materiais

23

Conforme pode ser observado na Figura 13, o diagrama de seqncia Produz Pedras Pequenas mostra a seqncia de insero das horas trabalhadas na produo pelo equipamento britador secundrio de uma unidade industrial em uma determinada data, essa informao necessria para que posteriormente o usurio realize o clculo da produo das pedras pequenas, de cada material produzido, cujo diagrama de seqncia apresentado na Figura 14. A Figura 15 apresenta o diagrama de seqncia do caso de uso Produz Massa Asfltica, no qual o usurio solicita o clculo da produo de massa asfltica de um determinado perodo, selecionando todos os materiais ou apenas aquele que ele desejar conhecer o valor da produo.

Figura 13. Diagrama de Seqncia Produz Pedras Pequenas

O diagrama de seqncia Produz Brita Graduada da Figura 16 exibe o comportamento seqencial do sistema para efetuar o clculo da produo de Brita Graduada, de todos os materiais ou apenas daquele selecionado pelo usurio.

24

Figura 14. Diagrama de Seqncia Calcula Produo de Pedras Pequenas

Figura 15. Diagrama de Seqncia Produz Massa Asfltica

25

Figura 16. Diagrama de Seqncia Produz Brita Graduada

4.2.3.2 Diagramas de Seqncia do Mdulo Estoque

Como pode ser observado no diagrama de casos de uso do mdulo estoque da Figura 8, a atualizao do estoque pode ocorrer de trs formas, pelo usurio, pelo subsistema produo e pelo subsistema carreteiros, os seus diagramas de seqncia so exibidos respectivamente nas Figuras 17, 18 e 19.

26

Figura 17. Diagrama de Seqncia Atualiza Estoque pelo Usurio

Figura 18. Diagrama de Seqncia Atualiza Estoque pelo Subsistema Produo

27

Figura 19. Diagrama de Seqncia Atualiza Estoque pelo Subsistema Carreteiros

A consulta ao estoque, como mostrado no diagrama de casos de uso do mdulo estoque, pode ser realizada de duas maneiras, pelo laboratorista e pelo caso de uso Solicita Material pertencente ao subsistema carreteiros. A Figura 20 e Figura 21 mostram os respectivos diagramas de seqncia para consulta do estoque de material.

Figura 20. Diagrama de Seqncia Consulta Estoque pelo Usurio

28

Figura 21. Diagrama de Seqncia Consulta Estoque pelo Subsistema Carreteiros

4.2.3.3 Diagramas de Seqncia do Mdulo Carreteiros

No mdulo carreteiros, tudo se origina a partir da solicitao do material, pois se no houver a solicitao no h o transporte pelo carreteiro. A Figura 22 exibe o diagrama de seqncia Solicita Material.

Figura 22. Diagrama de Seqncia Solicita Material

O diagrama de seqncia para a determinao dos locais de carga e descarga apresentado na Figura 23.

29

Figura 23. Diagrama de Seqncia Determina Local de Carga/Descarga

Como pode ser observado no diagrama de caso de uso do mdulo carreteiros da Figura 9, seo 4.2.2.3, existem duas formas de transporte de material, aquele efetuado pelo carreteiro sem contrato e o efetuado pelo carreteiro contratado. A Figura 24 apresenta o diagrama de seqncia para o transporte de material pelo carreteiro sem contrato, referente ao caso de uso Transporta Material. O diagrama de seqncia do caso de uso Contrata Carreteiro mostrado na Figura 25.

30

Figura 24. Diagrama de Seqncia Transporta Material

Figura 25. Diagrama de Seqncia Contrata Carreteiro

O diagrama de seqncia Transporta Material com Contrato apresentado na Figura 26.

31

Figura 26. Diagrama de Seqncia Transporta Material com Contrato

A Figura 27 mostra o diagrama de seqncia Determina Preo para Tipo de Material. A seqncia para a apropriao de desconto de um determinado contrato de carreteiro e data exibida na Figura 28.

32

Figura 27. Diagrama de Seqncia Determina Preo para Tipo de Material

Figura 28. Diagrama de Seqncia Apropria Desconto

33

A seqncia do clculo da medio da produo de um contrato para um determinado perodo apresentada na Figura 29, que representa o diagrama de seqncia da Calcula Medio de Produo.

34

Figura 29. Diagrama de Seqncia Calcula Medio de Produo

35

4.2.4 Diagrama de Classe

O diagrama de classe do SGCPEM/JFL est representado na Figura 30, este diagrama permite uma visualizao global do estado do sistema. Em seguida sero apresentados os diagramas de classe referente a cada mdulo do sistema, oferecendo uma representao mais especfica para analisar e

compreender as classes de cada mdulo e as interaes existentes com os demais mdulos.

36

Figura 30. Diagrama de Classe do SGCPEM/JFL

37

4.2.4.1 Diagrama de Classe do Mdulo Produo

O diagrama de classe mostrado na Figura 31 refere-se ao mdulo produo, nota-se a integrao do mesmo com os mdulos estoque e carreteiros representado por de pacotes.

38

Figura 31. Diagrama de Classe do Mdulo Produo

39

4.2.4.2 Diagrama de Classe do Mdulo Estoque

O diagrama de classe do mdulo estoque o da Figura 32, no qual pode ser observado que um determinado material pode ser estocado em diversos locais denominados de local de carga e descarga.

Figura 32. Diagrama de Classe do Mdulo Estoque

4.2.4.3 Diagrama de Classe do Mdulo Carreteiros

O diagrama de classe do mdulo carreteiros est representado na Figura 33.

40

Figura 33. Diagrama de Classe do Mdulo Carreteiros

41

4.2.5 Diagrama de Implantao

O diagrama de implantao do SGCPEM/JFL exibido na Figura 34, ele representa a estrutura real exata do ambiente de informtica da empresa no momento da implantao do sistema. Para a classificao de cada componente do diagrama foram definidos e utilizados os seguintes esteretipos: <<dispositivo de rede>>: representa um dispositivo de hardware de rede; <<roteador/firewall>>: representa um computador utilizado como roteador e firewall; <<servidor de rede/aplicao>>: representa um servidor de domnio e aplicaes; <<processador>>: representa uma estao de trabalho.

Figura 34. Diagrama de Implantao do SGCPEM/JFL

O SGCPEM/JFL foi implantado no servidor de rede/aplicao de nome DOMCCNP conforme mostra a figura, e as estaes acessam o sistema utilizando um navegador.

42

4.3

PROJETO

O Sistema Gerenciador de Banco de Dados (SGBD) utilizado foi o PostgreSQL [POSTGRESQL] distribudo sob a licena Berkeley Software

Distribution [BSD], sendo esta a sua principal caracterstica relevante para este projeto. O PostgreSQL, alm de ser um banco de dados relacional, possui em suas ltimas verses caractersticas de orientao a objetos, dentre as quais a herana foi utilizada, portanto, o projeto do banco de dados resultou em um modelo objetorelacional, exibido na Figura 35.

43

Figura 35. Modelo objeto-relacional do SGCPEM/JFL

44

Para a criao e gerenciamento do banco de dados foi utilizada a ferramenta EMS PostgreSQL Manager Lite [EMSSQL], as figuras de todas as tabelas geradas durante o projeto esto no Anexo I. A propriedade da orientao a objetos que pode ser constatada no projeto do banco de dados a herana, presente nas tabelas CaminhaoBasculante, CaminhaoTransporte e EquipamentoProducao, as quais herdam as caractersticas da tabela Equipamento, e nas tabelas TransporteContratado e

TransporteNaoContratado, que herdam as caractersticas da tabela Transporte.

4.4

IMPLEMENTAO

A implementao deste projeto utilizou o modelo cliente-servidor em trs camadas. Desta forma, o conceito modular, foram implementadas as camadas de interface do usurio, regras de negcio e servios de dados, conforme mencionado e exibido na Figura 36 [SADOSKI, 2004]. Esta forma de implementao proporciona uma maior flexibilidade quanto a possveis mudanas que venham a ocorrer em uma das camadas, por exemplo, se a camada de regras de negcio precisar de modificaes ela apenas ser atualizada no servidor que a comporta, e essas alteraes sero refletidas para todos os clientes, no tornando necessria a atualizao da interface com o usurio, pois esta no sofreu modificaes. claro que nem sempre isto ocorrer, pois existem certas alteraes de regras de negcio que podem exigir a modificao da camada de interface com o usurio, neste caso seria necessrio tambm prover a atualizao necessria para a camada de interface com o usurio, mas no contexto geral possvel perceber a flexibilidade que pode ser alcanada por este modelo em trs camadas.

Figura 36. Arquitetura cliente/servidor em trs camadas

45

A camada de servios de dados o prprio banco de dados criado na fase de projeto, ela prov os dados necessrios para a camada de regras de negcio. A camada de regras de negcio est organizada de forma modular e foi implementada utilizando a linguagem de programao Java e a tecnologia JavaBeans [JAVABEANS] com o auxlio da ferramenta NetBeans Integrated Developement Environment (IDE) [NETBEANS], na qual foram criados os pacotes banco, producao, estoque, carreteiros e extras, conforme a Figura 37. O pacote banco responsvel por comportar as classes para acesso camada de servios de dados, os pacotes producao, estoque e carreteiros so responsveis por comportar as classes para a definio das regras de negcio de seus respectivos mdulos, e o pacote extras comporta as classes utilizadas para definir as regras de acesso ao sistema pelos usurios.

Figura 37. Estrutura de Pacotes Netbeans

A camada de interface do usurio foi implementada com a tecnologia HTML e JSP com o auxlio da ferramenta NetBeans, e tambm da ferramenta para gerao de relatrios JasperReports e iReport [IREPORT]. Ela faz o acesso camada de regras de negcio e mostra o resultado para o usurio em um navegador. Esta camada foi estruturada em pastas com o objetivo de facilitar o desenvolvimento, esta estrutura ilustrada na Figura 38.

Figura 38. Estrutura de Pastas Camada Interface do Usurio

46

Nota-se que a estrutura de pastas utilizada na implementao da camada de interface do usurio segue o mesmo conceito daquela utilizada na camada de regras de negcio. A pasta processa contm os arquivos JSP criados para efetuar o processamento dos dados informados pelo usurio, esses arquivos so responsveis apenas por processar a requisio, acessar a camada de regras de negcio e redirecionar a resposta para o usurio em uma pgina JSP ou relatrio iReport. A pasta relatoriosireport contm os arquivos de relatrio desenvolvidos em JasperReports, as demais pastas seguem o mesmo conceito de organizao dos pacotes da camada de regras de negcio, mas referem-se camada de interface do usurio. Nesta seo e a partir do prximo pargrafo explicado como ocorre o processamento e a resposta de uma requisio de login feita pelo usurio, todos os demais processamentos do sistema ocorrem da mesma forma conceitual. Ao acessar o sistema o usurio direcionado para a tela de login Figura 39. Se ele tentar acessar uma pgina restrita digitando o caminho completo da mesma, verificado na sesso se ele est autenticado ou no no sistema, se ele j estiver autenticado, o acesso pgina liberado, caso contrrio ele redirecionado para a tela de login, arquivo index.jsp. Esta verificao realizada em todas as pginas restritas por meio da identificao da sesso, conforme exemplo do Cdigo Fonte 1.

47

Figura 39. Tela de Login (index.jsp)

<% String sessionId = (String)session.getAttribute("sessionId"); if (sessionId != null && sessionId.equals(session.getId())) { %> // Acesso a pgina permitido <% } else { // redireciona para a tela de login response.sendRedirect("/ccnp/web/sgcpemjfl/index.jsp"); session.setAttribute("msg","Login requerido!"); } %>

Cdigo Fonte 1.

Verificao de Autenticao do Usurio

Aps o preenchimento dos campos e a confirmao, o formulrio faz a chamada a sua respectiva pgina de processamento, neste caso a pagina plogin.jsp da pasta processa, conforme o Cdigo Fonte 2.

<form name="login" id="login" action="processa/plogin.jsp" method="post"> </form>

Cdigo Fonte 2.

Redirecionamento do Formulrio para a Pgina de Processamento

48

Em seguida, conforme o Cdigo Fonte 3, a pgina plogin.jsp faz o acesso camada de regras de negcio, ela instancia os objetos conexao e login das classes Banco e LoginBean respectivamente, fazendo a conexo com o banco de dados conforme o Cdigo Fonte 4, e verificando, nos mtodos isUsuario(Banco) e isSenhaCorreta(banco) conforme o Cdigo Fonte 5, se o usurio e a senha informados pelo usurio esto corretos, se os dados existirem o usurio redirecionado para a pgina inicial do sistema, home.jsp conforme Figura 40, caso contrrio ele redirecionado novamente para a pgina index.jsp para a redigitao dos dados. Aps o login no sistema, o usurio interage com o mesmo pelo menu do sistema, composto pelos menus Sistema, Produo, Estoque e Carreteiros, conforme pode ser observado na Figura 40. O menu Sistema contm apenas uma opo para encerrar a sesso e sair do sistema. Os menus Produo, Estoque e Carreteiros contm as opes de interao com cada mdulo do sistema, a estrutura de todos os menus exibida nas figuras 41, 42, 43 e 44.

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="/sgcpem/extras/erro.jsp"%> <jsp:useBean id="conexao" class="banco.Banco" scope="session"/> <jsp:useBean id="login" class="extras.beans.LoginBean" scope="session"/> <jsp:setProperty name="login" property="*"/> <% String redir = "../index.jsp"; if (conexao.conectaPostgresql("localhost","sgcpemjfl","postgres","master")) { if (login.isUsuario(conexao)) { if (login.isSenhaCorreta(conexao)) { session.setMaxInactiveInterval(1800); session.setAttribute("conexao",conexao); session.setAttribute("usuario",login); session.setAttribute("sessionId",session.getId()); session.setAttribute("msg","Voc est autenticado no Sistema!"); redir = "../home.jsp"; } else { session.setAttribute("msg","Senha incorreta!"); } } else { session.setAttribute("msg","Usurio incorreto!"); } } response.sendRedirect(redir); %>

Cdigo Fonte 3.

Pgina plogin.jsp

49

/** Conexo a um determinado banco de dados do Postgresql em um determinado host */ public boolean conectaPostgresql(String host, String banco, String usuario, String senha) { try { Class.forName("org.postgresql.Driver"); setConnection(DriverManager.getConnection("jdbc:postgresql://"+host+" :5432/"+banco,usuario,senha));//"jdbc:postgresql://"+host+":5432/"+ba nco,usuario,senha)); setStatement(getConnection().createStatement(ResultSet.TYPE_SCROLL_IN SENSITIVE,ResultSet.CONCUR_UPDATABLE)); } catch(SQLException erro) { System.out.println("Erro ao conectar ao Banco de Dados!"); erro.printStackTrace(); return false; } catch(ClassNotFoundException erro) { System.out.println("Erro ao conectar ao Banco de Dados!"); erro.printStackTrace(); return false; } System.out.println("Conexao efetuada com sucesso!"); return true; }

Cdigo Fonte 4.

Mtodo conectaPostgresql() da classe Banco.java

/** Verifica se o usuario passado como parametro existe */ public boolean isUsuario(Banco banco) { ResultSet rst = banco.consulta("SELECT * FROM \"Usuario\" " + "WHERE usuario = '" + getUsuario() + "'"); try { if (rst.next()) { rst.close(); return true; } } catch(SQLException erro) { System.out.println("Usuario \"" + getUsuario() + "\" no existe!"); erro.printStackTrace(); } return false; } /** Verifica se a senha do usuario existente esta correta */ public boolean isSenhaCorreta(Banco banco) { ResultSet rst = banco.consulta("SELECT * FROM \"Usuario\" " + "WHERE usuario = '" + getUsuario() + "' " + "AND senha = '" + getSenha() + "'"); try { if (rst.next()) { setSenha(senha); return true; } } catch(SQLException erro) { System.out.println("Senha incorreta!"); erro.printStackTrace(); } return false; }

Cdigo Fonte 5.

Mtodos isUsuario() e isSenhaCorreta() da classe LoginBean.java

50

Figura 40. Pgina Inicial do Sistema (home.jsp)

Figura 41. Menu Sistema

51

Figura 42. Menu Produo

Figura 43. Menu Estoque

52

Figura 44. Menu Carreteiros

Todas as telas de cadastro seguem o padro da Figura 45, contendo um menu com as opes Cadastrar, Listar (alterar, excluir) e Consultar, esta figura referente ao cadastro de Material acessado pelo menu Produo, sub-menu Material. Os campos destacados na cor amarela so campos obrigatrios que o usurio deve preencher, caso pelo menos um desses campos seja deixado em branco o sistema no permitir a incluso do registro, exibindo uma mensagem de erro ao usurio destacada na cor vermelha conforme Figura 46. Assim como as telas de cadastro, as telas de listagem, alterao, excluso e consulta tambm seguem o mesmo padro, conforme as figuras 47, 48, 49, 50 e 51.

53

Figura 45. Tela de Cadastro de Material

Figura 46. Mensagem de Erro de Campos Obrigatrios

54

Figura 47. Tela de Listagem de Material

Figura 48. Tela de Alterao de Material

55

Figura 49. Tela de Excluso de Material

Figura 50. Tela de Consulta de Material

56

Figura 51. Tela Resultado da Consulta de Material

Os relatrios do sistema so gerados usando a tecnologia JasperReports, o design dos relatrios foi feito pela ferramenta iReport. Foram estudadas duas maneiras de apresentar o relatrio ao usurio no JasperReports, criar o arquivo Portable Document Format (PDF) e abri-lo em seguida, ou utilizar a ferramenta JasperViewer do prprio JasperReports. Aps o estudo destas formas de emisso dos relatrios foi adotado o JasperViewer como padro para o sistema, o principal motivo para a escolha o fato de o sistema no depender de um software leitor de arquivos do tipo PDF para poder abrir os relatrios. No entanto, para conhecimento do leitor, ser mostrado tanto um relatrio emitido em PDF quanto outro emitido no JasperViewer. O relatrio gerado em tempo de execuo exibindo o resultado da consulta feita ao referido objeto, o Cdigo Fonte 6 mostra o cdigo do relatrio de caminhes basculantes de produo, e a Figura 52 mostra o relatrio gerado em formato PDF.

57

Figura 52. Relatrio de Caminho Basculante de Produo

58
<%@ page import="net.sf.jasperreports.view.*, net.sf.jasperreports.engine.*, java.util.*, java.io.*, java.sql.*, banco.Banco, producao.beans.CaminhaoBasculanteBean" %> <% Banco conexao = (Banco)session.getAttribute("conexao"); Connection con = conexao.getConnection(); CaminhaoBasculanteBean caminhao = new CaminhaoBasculanteBean(); caminhao.consultarTodos(conexao,"identificacao"); String layout = "/ccnp/web/sgcpemjfl/relatoriosireport/layouts/rel_cadastro_cb.jrxml"; File report = new File(application.getRealPath(layout)); layout = report.getPath().replace('\\','/'); layout = report.getPath().replace("ccnp\\build\\web\\",""); System.out.print("Caminho: " + layout); JasperReport relatorio = JasperCompileManager.compileReport(layout); Map parametros = new HashMap(); JRResultSetDataSource ds = new JRResultSetDataSource(caminhao.getRS()); JasperPrint impressao = JasperFillManager.fillReport( relatorio, parametros, ds); JasperManager.printReportToPdfFile(impressao, "../webapps/ccnp/build/web/sgcpemjfl/producao/cb/relatorios/rel_cadastro_cb.pdf"); response.sendRedirect("rel_cadastro_cb.pdf"); %>

Cdigo Fonte 6.

Cdigo JSP para Emisso do Relatrio Caminho Basculante em PDF

O relatrio da Figura 53 mostra a medio de um carreteiro contratado, que o principal melhoramento em relao ao sistema antigo, este relatrio totaliza todos os valores devidos ao carreteiro em um intervalo de data, e foi emitido em JasperViewer, e o Cdigo Fonte 7 mostra o respectivo cdigo JSP implementado para a emisso deste relatrio.

59

Figura 53. Relatrio de Medio de Carreteiro Contratado

60

<%@ page import="net.sf.jasperreports.view.*, net.sf.jasperreports.engine.*, java.util.*, java.io.*, java.sql.*, banco.Banco" %> <jsp:useBean id="relMedCar" class="producao.beans.relatorio.RelMedicaoCarreteiro" scope="request"/> <% Banco conexao = (Banco)session.getAttribute("conexao"); relMedCar.setContrato(request.getParameter("contrato")); relMedCar.setDataInicial(request.getParameter("dataInicial")); relMedCar.setDataFinal(request.getParameter("dataFinal")); relMedCar.consultarDetalhe(conexao); File report = new File(application.getRealPath("/ccnp/web/sgcpemjfl/relatoriosireport/layouts/Medica oCarreteiro.jrxml")); String layout = report.getPath().replace('\\','/'); layout = report.getPath().replace("ccnp\\build\\web\\",""); System.out.print("Caminho: " + layout); JasperReport relatorio = JasperCompileManager.compileReport(layout); ArrayList mestre = (ArrayList)session.getAttribute("mestre"); Map parametros = new HashMap(); parametros.put("numerocontrato",mestre.get(0)); parametros.put("contratado",mestre.get(1)); parametros.put("cpfcnpj",mestre.get(2)); parametros.put("datainicial",mestre.get(3)); parametros.put("datafinal",mestre.get(4)); parametros.put("totalparticipacao",(Double)mestre.get(5)); JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, new JRResultSetDataSource((ResultSet)relMedCar.getRS())); JasperViewer viewer = new JasperViewer(impressao, false); viewer.show(); response.sendRedirect("../index.jsp"); %>

Cdigo Fonte 7.

Cdigo JSP para Emisso da Medio de Carreteiro Contratado em JasperViewer

4.5

TESTES

A cada iterao do ciclo de vida foram testados os requisitos funcionais identificados e descritos nos diagramas de casos de uso. Para tanto foi realizada uma verificao do modelo em relao ao problema do mundo real procurando encontrar erros que no refletem aquilo que realmente necessrio, esta verificao possibilitou a reduo de inconsistncias de negcio. Foram ainda realizados testes dos programas aps a implementao dos mesmos, a comear pelo testes das unidades que, na orientao a objetos equivalem s classes ou

61

objetos encapsulados, em seguida foram testadas a integrao entre as unidades ou classes e, por fim, realizados os testes de aceitao do usurio.

4.6

IMPLANTAO E TREINAMENTO

A implantao ocorreu logo aps as correes dos problemas encontrados na fase de testes e foi realizada conforme os conceitos j apresentados, o computador servidor prov tanto a camada de servios de dados quanto a camada de regras de negcio. O treinamento foi feito pelo acompanhamento prtico e explicativo de utilizao da aplicao juntamente com o usurio na empresa.

4.7

ANLISE DOS RESULTADOS

Nesta

fase

foram

analisados

os

resultados

frutos

do

desenvolvimento deste projeto, para tanto foi realizada uma coleta de informaes do usurio baseadas na experincia de utilizao do sistema, priorizando as principais funes do sistema. Ainda foi constatado que as questes tcnicas e comerciais apresentadas como os principais objetivos desta proposta foram contempladas.

62

CRONOGRAMA

A Figura 54 mostra o cronograma real de execuo do projeto.

63

Figura 54. Cronograma real de execuo do projeto

64

CONSIDERAES FINAIS

O processo de desenvolvimento do SGCPEM/JFL, subsidiado por ferramentas de desenvolvimento de uso livre foi a principal dificuldade encontrada e um desafio, o que estimulou intensas pesquisas sobre a utilizao e aplicao das tecnologias escolhidas. Os conceitos adquiridos durante o curso de graduao da metodologia orientada a objetos, da linguagem de programao Java, de bancos de dados e linguagem Structured Query Language (SQL) e de redes de computadores, foram essenciais no embasamento das pesquisas realizadas para aprofundamento em cada tecnologia empregada no desenvolvimento do sistema. A concluso deste trabalho permitiu a empresa CCNP utilizar a nova verso do SGCPEM, o SGCPEM/JFL, sem se preocupar mais com questes de licenciamento, uma vez que todos os recursos utilizados durante o desenvolvimento so de livre distribuio. Alm disso, a independncia de sistema operacional no restringe a empresa a usar um sistema operacional proprietrio para portar o SGCPEM/JFL, e esta portabilidade no interfere no modo como os usurios acessam e utilizam o sistema. Para trabalhos futuros poder ser criado um mdulo de

administrao do sistema, contemplando o cadastro de usurios e seus respectivos nveis de acesso. Tambm poder ser melhorada a forma de autenticao do sistema, tornando o campo senha da tabela de usurios criptografado e implementando a autenticao de segurana criptografada, bem como criao de logs de acesso e utilizao do sistema. A implementao dessas funcionalidades permitir a implantao e disponibilizao do sistema para a internet, e com um nvel de segurana mais elevado que o atual.

65

REFERNCIAS BIBLIOGRFICAS

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. The Unified Modeling Language User Guide. Addison Wesley, 512 pp, 1998. BSD PostgreSQL BSD License. Disponvel em: <http://www.postgresql.org/about/licence>. Acesso em: 03 de outubro de 2005. EMSSQL - EMS SQL Manager for PostgreSQL. Disponvel em: <http://sqlmanager.net/products/postgresql/manager/>. Acesso em: 20 de novembro de 2005. HTML HTML 4.01 Specification. Disponvel em: <http://www.w3.org/TR/html401/>. Acesso em: 06 de setembro de 2007. IREPORT iReport Project. Disponvel em: <http://www.jasperforge.org/sf/projects/ireport>. Acesso em: 23 de julho de 2006. JASPERREPORTS JasperReports Project. Disponvel em: <http://jasperforge.org/sf/projects/jasperreports>. Acesso em: 23 de julho de 2006. JAVA Java 2 Platform, Standard Edition. Disponvel em: <http://java.sun.com/j2se/>. Acesso em 05 de outubro de 2005. JAVABEANS JavaBeans. Disponvel em: <http://java.sun.com/products/javabeans/>. Acesso em: 14 de fevereiro de 2006. JSP Java Server Pages Technology. Disponvel em: <http://java.sun.com/products/jsp/>. Acesso em: 14 de fevereiro de 2006. NETBEANS NetBeans IDE. Disponvel em: <http://www.netbeans.org/>. Acesso

em: 10 de dezembro de 2005.


POSTGRESQL Object-Relational Database System. Disponvel em: <http://www.postgresql.org>. Acesso em: 03 de outubro de 2005. PRESSMAN, R. S. Engenharia de Software. 5 ed. Rio de Janeiro. McGraw-Hill Interamericana, 2002. SADOSKI, D. Three Tier Software Architectures. SEI Software Enegineering Institute. Disponvel em:

66

<http://www.sei.cmu.edu/str/descriptions/threetier_body.html> (22 de julho de 2004). VPUML Visual Paradigm for UML Community Edition. Disponvel em: <http://www.visual-paradigm.com/product/vpuml/communityedition.jsp>. Acesso em: 15 de novembro de 2005.

67

APNDICE A TABELAS DO BANCO DE DADOS (ORDEM ALFABTICA)

68

APNDICE B PROPOSTA DO TRABALHO DE DIPLOMAO

Anda mungkin juga menyukai