JOÃO VICTOR COELHO XAVIER
SISTEMA DE GERENCIAMENTO DE MADEIREIRA
Assis
2010
JOÃO VICTOR COELHO XAVIER
SISTEMA DE GERENCIAMENTO DE MADEIREIRA
Trabalho de Curso apresentado ao Instituto Municipal de
Ensino Superior de Assis, como requisito do Curso de
Graduação.
Orientador: Prof. Dr. Fernando Lima
Área de Concentração: Desenvolvimento de Sistemas
Assis
2010
FICHA CATALOGRÁFICA
XAVIER, JOÃO VICTOR COELHO
Sistema de Gerenciamento de Madeireira / João Victor, FEMA – Fundação Educacional
do Município de Assis – Assis, 2010.
32
Orientador: Fernando Cesar Lima
Trabalho de Conclusão de Curso – Instituto Municipal de Ensino Superior de Assis
CDD: 001.6
Biblioteca da FEMA
SISTEMA DE GERENCIAMENTO DE MADEIREIRA
JOÃO VICTOR COELHO XAVIER
Trabalho de Conclusão de Curso
apresentado ao Instituto Municipal de
Ensino Superior de Assis, como requisito
do Curso de Graduação, analisado pela
seguinte comissão examinadora:
Orientador: Fernando Cesar Lima
Analisador: Alex Sandro Romeo de Souza Poletto
Assis
2010
DEDICATÓRIA
Dedico este trabalho a toda a minha família
e amigos, em especial a minha mãe, meu
pai, minha irmã e minha namorada.
AGRADECIMENTOS
Ao professor Fernando Cesar Lima pela orientação e pelo constante estímulo
transmitido durante o trabalho.
Aos amigos da sala e a todos que colaboraram direta ou indiretamente na execução
deste trabalho.
Aos familiares que, com certeza, são os que mais me estimularam tanto na
execução quanto na conclusão deste curso.
E um agradecimento especial a Lurdes Aparecida Coelho minha mãe, Ana Carolina
Coelho Xavier minha irmã e Izabela Oliveira da Silva minha namorada que foram as
pessoas que mais me apoiaram e me motivaram a concluir mais esta importante
etapa de minha vida.
Para as coisas mudarem, você precisa mudar.
Jim Rohn
RESUMO
O trabalho descreve a analise e o desenvolvimento de um sistema desktop de
gerenciamento de madeireira. O objetivo do sistema é facilitar os processos de
controle da madeireira, mantendo e movimentando de forma segura os dados
referentes a vendas, compras, clientes, fornecedores e outros, auxiliando também os
cálculos que eram feito de forma manual. No trabalho também foi feito um estudo
sobre as tecnologias que foram usadas para o desenvolvimento do mesmo, como
Netbeans, Java, ArgoUML e outras.
Palavras-chave: Sistema, Desktop, Madeireira, Java.
ABSTRACT
The paper describes the analysis and development of a timber desktop
management system. The system's objective is to facilitate the process and the
control of the timber, maintaining and moving the data in a secure way of sales,
purchases, customers, suppliers and others, and it also helps the calculations that
were done manually. In this work was also done a study about the technologies that
were used to develop the system, as Netbeans, Java, ArgoUML and others.
Keywords: System, Desktop, Timber, Java.
LISTA DE ILUSTRAÇÕES
Figura 1 – Diagrama de Caso de Uso (Manter)......................................................... 20
Figura 2 – Diagrama de Caso de Uso (Emitir) ........................................................... 21
Figura 3 – Diagrama de Caso de Uso (Movimentar) ................................................. 21
Figura 4 – Diagrama de Classe ................................................................................. 22
Figura 5 – Diagrama de Sequencia ........................................................................... 23
Figura 6 – Organização dos Pacotes ........................................................................ 24
Figura 7 - Classe Pessoa .......................................................................................... 25
Figura 8 - Mapeamento Pessoa ................................................................................ 25
Figura 9 - Dao da classe Pessoa .............................................................................. 26
Figura 10 - Classe HibernateUtil ............................................................................... 27
Figura 11 – Tela Principal.......................................................................................... 28
Figura 12 – Cadastro de Pessoa ............................................................................... 29
Figura 13 – Movimentação de Venda ........................................................................ 30
Figura 14 – Modelo de Relatório ............................................................................... 30
SUMÁRIO
1. INTRODUÇÃO................................................................................ 13
1.1 OBJETIVO ........................................................................................................................... 14
1.2 JUSTIFICATIVA .................................................................................................................. 14
2. TECNOLOGIAS DE ANALISE E DESENVOLVIMENTO ............... 15
2.1 TECNOLOGIAS E FERRAMENTAS UTILIZADAS ....................................................... 15
2.1.1 Java .............................................................................................................................. 15
2.1.2 Hibernate .................................................................................................................... 16
2.1.3 Hsqldb ......................................................................................................................... 16
2.1.4 Netbeans ..................................................................................................................... 17
2.1.5 DBDesigner ................................................................................................................ 17
2.1.6 UML .............................................................................................................................. 17
2.1.7 ArgoUML ..................................................................................................................... 18
2.1.8 XML .............................................................................................................................. 18
3. ANALISE E ESPECIFICAÇÃO DO SISTEMA ................................ 19
3.1 LEVANTAMENTO DE REQUISITOS ............................................................................. 19
3.2 LISTA DE EVENTOS ........................................................................................................ 19
3.3 DIAGRAMA DE CASOS DE USO................................................................................... 20
3.4 DIAGRAMA DE CLASSE ................................................................................................. 21
3.5 DIAGRAMA DE SEQUÊNCIA ......................................................................................... 23
4. IMPLEMENTAÇÃO DA APLICAÇÃO ............................................ 24
4.1 ORGANIZAÇÃO DOS PACOTES E CLASSES DO SISTEMA ............................. 24
4.2 INTERFACE DO USÚARIO .................................................................................. 28
5. CONSIDERAÇÕES FINAIS ............................................................ 31
REFERÊNCIAS .................................................................................... 32
13
1. INTRODUÇÃO
A madeireira ROSA PEROBA Madeira de Demolição, desde o inicio de suas
atividades tem feito os controles de estoque, pagamento de funcionários,
carregamentos, clientes, funcionários e outros de forma manual, ocasionando erros
em cálculos, perda de dados e etc. Um sistema para automatizar traria mais
agilidade e confiabilidade nos processos.
Um dos problemas enfrentados pela empresa é efetuar cálculos manualmente,
necessários para um carregamento de madeira. Sendo assim, torna-se
imprescindível a automatização do processo de carregamento.
A principal atividade da madeireira, ROSA PEROBA Madeira de Demolição, é a
compra de madeiras usadas por pessoas que demoliram suas casas ou barracos,
assim, a madeireira paga um preço pela madeira e a retira do local. Após este
processo, a madeira é preparada para a venda ou para a construção de móveis,
também vendidos pela referida empresa. A venda da madeira e dos móveis
produzidos pode ser feita tanto para pessoas físicas quanto para jurídicas. Durante
esses processos as madeiras e os móveis ficam armazenados em um barracão que
na realidade, corresponde à um estoque.
Todas as atividades são feitas por funcionários contratados e pagos semanalmente
pelos serviços, que são: retirada da madeira, preparação, carregamento, construção
de móveis, dentre outros.
14
1.1 OBJETIVO
Tendo em vista que a empresa tem crescido muito e os serviços até então
realizados manualmente não mais suprem as demandas, torna-se de suma
importância viabilizar o processo de produção e venda. Para tanto, objetiva-se com
esse trabalho desenvolver um sistema para facilitar o gerenciamento de dados
relacionados à madeireira ROSA PEROBA Madeira de Demolição. Hoje em dia, os
cálculos necessários para o carregamento, controle de estoque entre outros, como
já se mencionou são feitos manualmente desse modo, o sistema tem como objetivo
agilizar e evitar possíveis erros e falhas humanas, além de facilitar o acesso a
qualquer informação da empresa.
1.2 JUSTIFICATIVA
Com o sistema de gerenciamento, os processos serão automatizados, facilitando os
cálculos, armazenamentos e acessos às informações. Ressalta-se que hoje em dia,
são poucos os sistemas de gerenciamento de empresas neste ramo, sendo assim, o
desenvolvimento do presente trabalho surgiu a partir de uma necessidade palpável o
que justifica a execução desse estudo.
15
2. TECNOLOGIAS DE ANALISE E DESENVOLVIMENTO
Neste capitulo procurar-se apresentar as tecnologias utilizadas para o
desenvolvimento do sistema de gerenciamento de madeireira.
2.1 TECNOLOGIAS E FERRAMENTAS UTILIZADAS
O trabalho foi feito com base na orientação a objetos, juntamente com a técnica de
modelagem UML (Linguagem de Modelagem Unificada). Na aplicação da técnica
UML, será utilizada a ferramenta “ArgoUML”. Para a análise de requisitos foram
discutidos os processos da madeireira verbalmente junto ao sócio da mesma.
O sistema será desenvolvido utilizando a ferramenta “NetBeans”, juntamente com a
linguagem Java. Para a persistência de dados será utilizado o banco de dados
HSQLDB, armazenando de forma eficaz os dados e para modelagem do banco de
dados era utilizada a ferramenta DBDesigner. Para o gerenciamento de relatórios
será utilizado à ferramenta “iReports”.
2.1.1 Java
A linguagem Java surgiu a partir de um projeto chamado Green Project, lançado
pela Sun Microsystems, em 1991. Os mentores do projeto foram Patrick Nauhhton,
Mike Sheridan e James Gosling, que acreditavam que em pouco tempo haveria uma
16
união de computadores com equipamento de eletrodomésticos. A intenção não era
criar uma linguagem de programação, mas se antecipar e planejar a próxima
tendência do mundo digital. James Gosling denominou a linguagem de Oak, que era
o nome de uma árvore, porém o nome teve de ser alterado devido à existência de
outra linguagem com o mesmo nome. O nome Java foi inspirado em uma cafeteria
cuja equipe de programadores costumava visitar durante algumas reuniões. Java
era o nome de uma cidade de origem de um café importado.
Em 1995, Java foi anunciado pela SunMicrosystems, sendo lançado como uma
linguagem de programação que trabalhava em sites na World Wide Web. A
tecnologia Java, por ser uma linguagem orientada a objetos e independente de
plataforma, não funciona somente para aplicações Web, sendo também muito usada
em desenvolvimento de software.
2.1.2 Hibernate
O Hibernate é uma ferramenta de mapeamento objeto/relacional para Java. Esta
ferramenta facilita o mapeamento dos atributos entre uma base tradicional de dados
relacionais e o modelo de objeto de uma aplicação, mediante ao uso de arquivos
XML para estabelecer esta relação.
2.1.3 Hsqldb
O Hypersonic SQL Database (HSQLDB) é um projeto de banco de dados livre,
escrito em Java, que permite a manipulação de bancos de dados em uma
17
arquitetura cliente-servidor, ou standalone. Uma grande vantagem de utilização do
HSQLDB é a possibilidade de agregar o banco de dados ao pacote de aplicações. O
banco é multiplataforma e ocupa um pequeno espaço em disco. Outra característica
é a possibilidade de manipular bancos de dados em disco, memória ou em formato
texto.
2.1.4 Netbeans
Netbeans IDE é uma aplicação open-source usada na criação de aplicativos em
diferentes plataformas, utilizando tecnologia Java. Netbeans IDE possui o recurso
GUI Builder que é uma ferramenta utilizada para criação de design e posicionamento
dos componentes da interface, o que facilita o processo de desenvolvimento.
2.1.5 DBDesigner
DBDesigner é um editor visual para criação de banco de dados que integra a
criação, modelagem, desenvolvimento e manutenção dos bancos em um ambiente
simples. DBDesigner salva seus arquivos em XML.
2.1.6 UML
A Unified Modeling Language (UML) é uma linguagem de modelagem não
proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento,
o que significa que ela não informa o que fazer primeiro ou em seguida, ou como
18
projetar seu sistema, a UML auxilia a visualizar seu desenho e a comunicação entre
objetos.
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seus
trabalhos em diagramas padronizados.
2.1.7 ArgoUML
ArgoUML é uma aplicação open source que usa UML para modelar o desenho de
software de computador. A aplicação corre na maior parte das plataformas uma vez
que é implementada em Java. Está distribuída sob a licença BSD, providencia
suporte para quase todos os tipos de diagramas da UML padrão e inclui suporte
cognitivo.
2.1.8 XML
XML (Extensible Markup Languague) é uma recomendação da W3C para gerar
linguagens de marcação para necessidades especiais.
O XML é um formato para a criação de documentos com dados organizados de
forma hierárquica, como se vê em documentos de texto formatados, imagens
vetoriais ou banco de dados.
Pela sua portabilidade, já que é um formato que não depende das plataformas de
hardware ou de software, um banco distinto poder ler então estes mesmos dados.
XML é uma tecnologia na verdade simples que tem ao seu redor outras tecnologias
que a complementam e a fazem maior e com possibilidades mais amplas.
19
3. ANALISE E ESPECIFICAÇÃO DO SISTEMA
Este capítulo contém informações geradas pelas ferramentas utilizadas para
modelagem do sistema e também os dados utilizados para o desenvolvimento do
mesmo.
3.1 LEVANTAMENTO DE REQUISITOS
Para o levantamento de requisitos foram realizadas entrevistas com o sócio da
madeireira, a partir de entrevista foi criada uma lista de eventos, em que se levantou
os requisitos necessários para suprir as necessidades da empresa.
A lista de eventos será descrita na próxima seção.
3.2 LISTA DE EVENTOS
Lista de eventos serve como referencia de requisitos, para auxiliar na criação do
diagrama de caso de uso, de classe e outros.
Manter:
Usuário, Pessoa, Produto, Cidade, Item Compra, Item Venda, Item Estoque e Item
Carregamento.
20
Movimentar:
Compra, Venda, Estoque, Pagamento Funcionário e Carregamento.
Emitir Relatório:
Relatório de Usuário, Relatório de Cliente Físico, Relatório de Cliente Jurídico, Emitir
Relatório de Fornecedor, Relatório de Funcionário, Relatório de Venda, Relatório de
Produto, Relatório de Pagamento Funcionário, Relatório de Carregamento, Relatório
de Cidade e Relatórios de Compra.
3.3 DIAGRAMA DE CASOS DE USO
Um caso de uso corresponde a uma determinada tarefa que pode ser executada
pelo sistema, por algum ator (usuário, gerente, vendedor). Os casos de uso foram
divididos em três partes, manter, emitir e movimentar. As divisões são representadas
nas Figuras 1, 2 e 3.
Figura 1 – Diagrama de Caso de Uso (Manter)
21
Figura 2 – Diagrama de Caso de Uso (Emitir)
Figura 3 – Diagrama de Caso de Uso (Movimentar)
3.4 DIAGRAMA DE CLASSE
O diagrama de classe descreve a estrutura estática dos objetos em um sistema, as
relações com outros objetos, seus atributos e seus métodos. A Figura 4 representa
os Diagramas de classe.
22
Figura 4 – Diagrama de Classe
23
3.5 DIAGRAMA DE SEQUÊNCIA
Os diagramas de sequência mostram as interações de um ator sobre um
determinado sistema para realizar um caso de uso ou parte dele, conforme mostra
as Figura 5.
Figura 5 – Diagrama de Sequencia
24
4. IMPLEMENTAÇÃO DA APLICAÇÃO
Este capítulo será destinado para a explanação acerca da implementação do
sistema, de como ficou a interface, organização e o banco de dados do mesmo.
4.1 ORGANIZAÇÃO DOS PACOTES E CLASSES DO SISTEMA
Para uma melhor organização, o sistema foi dividido em pacotes como podemos ver
na Figura 6, dentro da pasta Pacotes de código-fonte onde são armazenados os
códigos da implementação existem os pacotes gerenciadormad,
gerenciadormad.beans, gereciadormad.dao, gerenciadormad.swing,
gerecioadormad.util, imgs e report.
Figura 6 – Organização dos Pacotes
No pacote gereciadormad temos o método principal do programa, usado para char a
tela de entrada do sistema, já o pacote gerenciadormad.beans é trata de separar e
25
organizar classes e seus respectivos mapeamentos, as classes ali armazenadas são
as mesmas definidas no diagrama de classe mostrado na Figura 4, na Figura 7 e 8
podemos ver uma representação das mesmas e de seus mapeamentos.
Figura 7 - Classe Pessoa
Figura 8 - Mapeamento Pessoa
26
Já no pacote gerenciadormad.dao, é onde guardamos as classes com os métodos
de cada classe esses são do tipo cadastrar, excluir, emitir relatório, listar e outros se
necessário, um Dao é mostrado na Figura 9.
Figura 9 - Dao da classe Pessoa
Falando sobre o pacote gerenciadormad.util, é onde deixamos a classe
HibernateUtil, que trata-se da classe que recebe toda a configuração do hibernate,
para conexão com banco de dados, podemos ver na Figura 10.
27
Figura 10 - Classe HibernateUtil
Os pacotes gerenciadormad.img que armazena as imagens utilizadas no sistema e o
pacote report que trata dos gráficos dos relatórios produzidos pelo iReport, são os
últimos da organização.
28
4.2 INTERFACE DO USÚARIO
Ao acessar o sistema, o usuário se depara com a Tela Principal que possui interface
simples, onde são apresentadas as principais operações do sistema, conforme a
Figura 6.
Figura 11 – Tela Principal
O sistema foi separado em três partes, sendo uma parte dos cadastros, outra as
movimentações e os relatórios referentes a cadastros e movimentações.
29
Em relação a os cadastros podemos ver na Figura 7 um cadastro de Pessoa, onde a
mesma pode ser um Funcionário, Cliente ou Fornecedor, e podem ser efetuadas as
operações de cadastro, alteração, exclusão e até uma consulta sobe os dados
cadastrados.
Figura 12 – Cadastro de Pessoa
Como descrito anteriormente no sistema existem as movimentações, que são
representadas pela movimentação Venda na Figura 8, onde é inserida com uma lista
de itens de venda, um cliente e outros dados.
30
Figura 13 – Movimentação de Venda
Outro processo realizado pelo sistema é o de emissão de relatórios, que apresentas
as informações de um determinado cadastro ou movimentação para uma possível
comparação ou simplesmente inspeção. Os relatórios são representados na Figura
9.
Figura 14 – Modelo de Relatório
31
5. CONSIDERAÇÕES FINAIS
Com o sistema de gerenciamento de madeireira, a empresa terá o controle total das
informações referentes à vendas, compras, funcionários, clientes, fornecedores,
pagamentos, carregamentos, estoque, além da emissão de relatórios.
O sistema é desktop, dando ao usuário uma interface bem elaborada, facilitando o
entendimento e o uso do mesmo.
Através de conversas e entrevistas foram feitos todos os levantamentos de
requisitos e funcionalidades que eram necessárias para o sistema, em seguida foi
feita a modelagem do sistema: caso de uso, diagrama de classe e diagrama de
sequência. A modelagem foi importante para a implementação do sistema, já que
proporcionou conseguimos ter uma visão clara do que estava sendo proposto.
Para implementação foram utilizadas as ferramentas NetBeans IDE, iReports
juntamente com o banco de dados hsqldb, sem deixar de fora o framework
Hibernate.
As principais dificuldades encontradas no desenvolvimento do sistema foram com
relação ao entendimento dos erros representados pela ferramenta NetBeans IDE, e
também com todo o mapeamento e funcionamento do Hibernate.
O proposta do trabalho foi cumprida, os eventos foram implementados e as
necessidades da madeireira foram supridas.
32
REFERÊNCIAS
JAVAFREE.ORG, Disponível em: http://www.javafree.org/wiki/Java. Acesso em 04
de abril de 2010.
HSQLDB.ORG, Disponível em: http://www.hsqldb.org. Acesso em 05 de abril de
2010.
JASPERFORCE.ORG, Disponível em: http://jasperforge.org/projects/ireport. Acesso
em 05 de abril de 2010.
UML.ORG, Disponível em: http://www.uml.org. Acesso em 05 de abril de 2010.
NETBEANS.ORG, Disponível em: http://netbeans.org. Acesso em 04 de junho de
2010.
W3.ORG, Disponível em: http://www.w3.org/XML. Acesso em 05 de junho de 2010.