Hudson Ribeiro,
Julian Santos
e Leonardo Souza
Limeira
2012
Hudson Ribeiro,
Julian Santos
e Leonardo Souza
Limeira
2012
Hudson Ribeiro,
Julian Santos
e Leonardo Souza
Limeira
2012
que
seus
esforos
sempre
so
AGRADECIMENTOS
RESUMO
RIBEIRO, Hudson; SANTOS, Julian; Souza, Leonardo. Aplicao Java para controle de
estoque. 2012. 15 f. Trabalho de Concluso de Curso Bacharel em Cincia da Computao Faculdade Anhanguera de Limeira, 2012.
ABSTRACT
RIBEIRO, Hudson; Santos, Julian; SOUZA, Leonardo. Aplicao Java para controle de
estoque. Limeira, 2012. 15p. Monograph (Bachelor of Computer Science). Faculdade
Anhanguera de Limeira, 2012.
The use of Java language for control application and business administration has been
growing gradually, because it is a safe language and widespread in the programming word,
besides always being improved. Software for inventory control, are always needed everyday
life of an organization, because with them we can control the movement of inventory and
analyze the static end numbers for marking new decisions. The main objective of this research
is to build a software inventory control where we can demonstrate through documentation and
the project as a whole paths and documents necessary to develop a software project,
documenting it and deploy it.
Key-words: scientific methodology, graduate final study results, monograph
ndice de Ilustraes
ndice de Tabelas
Lista de siglas
ABNT
AESA
TCC
ERP
UML
MER
Modelo de Entidade-Relacionamento
DER
Diagrama de Entidade-Relacionamento
SGBD
ndice de Contedo
1 - Introduo ............................................................................................................................ 1
1.1 - Objetivos da Pesquisa ................................................................................................................. 1
1.1.1 - Objetivo Geral ...................................................................................................................... 2
1.1.2 - Objetivos Especficos........................................................................................................... 2
1.2 - Justificativa ................................................................................................................................. 3
1.3 - Viabilidade .................................................................................................................................. 3
4 - Viso de Analise................................................................................................................. 17
4.1 - Definio de Atores .................................................................................................................. 17
4.1.1 - Administrador .................................................................................................................... 17
4.1.2 - Funcionrio ........................................................................................................................ 18
5 - Prottipo ............................................................................................................................. 25
5.1 - Janela Inicial ............................................................................................................................. 25
5.2 Cadastros .................................................................................................................................. 26
5. 3 - Consultas.................................................................................................................................. 27
5.4 - Entrada de Nota Fiscal .............................................................................................................. 28
6 - Viso de Dados................................................................................................................... 31
6.1 - Projeto Conceitual..................................................................................................................... 31
6.2 - Projeto Lgico........................................................................................................................... 33
6.3 - Projeto Fsico ............................................................................................................................ 34
7 - Desenvolvimento ................................................................................................................ 42
7.1 - Ferramentas e Bibliotecas. ........................................................................................................ 42
7.2 - Implementao dos Cdigos Fonte ........................................................................................... 45
7.2.1 - Estrutura do Projeto ........................................................................................................... 45
7.2.2 - Importao de Bibliotecas.................................................................................................. 47
7.2.3 - Classes do Package FILE ................................................................................................... 49
7.2.4 - Classes do Package FACTORY ......................................................................................... 51
7.2.5 - Classes do Package VALIDATION .................................................................................. 54
7.2.6 - Classes do Package MODEL ............................................................................................. 57
7.2.7 - Classes do Package GUI .................................................................................................... 58
7.2.8 - Classes do Package EXECUTE ......................................................................................... 60
7.2.9 Classes do Package REPORT .............................................................................................. 61
7.2.10 - Classes do Package DAO ................................................................................................. 62
10 - Referncias ....................................................................................................................... 86
1 - Introduo
Atualmente, qualquer empresa por menor que seja faz um controle de estoque, sendo para
produtos, matria prima, itens de escritrio e etc. Com um controle de estoque, podemos gerar
relatrios para tomada de decises e analise de venda ou compra. Para facilitar esse controle
existem ferramentas (softwares), que agilizam esse controle e mesmo com uma grande
variedade de softwares livres ou pagos, muitas empresas preferem fazer esse gerenciamento
por planilhas, o que no aconselhvel. Com o crescente desenvolvimento da linguagem
Java, uma linguagem de alto nvel, uma API bem desenvolvida e um grau de portabilidade
alto, podem construir softwares para o gerenciamento de estoque, que podero ser utilizados
desde celulares a sistemas Unix.
1.2 - Justificativa
1.3 - Viabilidade
Existe um vasto numero de materiais informativos na internet assim como livros, para
desenvolvimento de software. Em relao ao estudo de processo de controle de gerenciamento
de estoque, contamos com analise nas empresas em que cada integrante da pesquisa trabalha.
Grupo de pesquisa formado por trs alunos, onde o conhecimento em linguagem de
programao no o mais avanado, gerando certa dificuldade no desenvolvimento do
software.
3
2 - Reviso de Literatura
Engenharia de software se aplica na rea do conhecimento da computao voltada para a
especificao, desenvolvimento e manuteno de sistemas de software aplicando tecnologias
e prticas de gerncia de projetos e outras disciplinas, objetivando organizao, produtividade
e qualidade.
Atualmente, essas tecnologias e prticas englobam linguagens de programao, banco de
dados, ferramentas, plataformas, bibliotecas, padres, processos e a questo da Qualidade de
Software.
Os fundamentos cientficos para a engenharia de software envolvem o uso de modelos
abstratos e precisos que permitem ao engenheiro especificar, projetar, programar e manter
sistemas de software, avaliando e garantindo suas qualidades. Alm disso, a engenharia de
software deve oferecer mecanismos para se planejar e gerenciar o processo de
desenvolvimento de um sistema de informao Sistema computacional, pois ambos se
confundem.
O livro Engenharia de Software - SOMMERVILLE Ian aborda uma serie de temas como:
requisitos de software, projeto de software, construo de software, teste de software,
manuteno de software, gerncia de configurao de software, gerncia de engenharia de
software, processos de engenharia de software, ferramentas e mtodos de engenharia de
software, qualidade de software
Este projeto que tem como finalidade principal a construo de um software, que simplifique
e agilize as rotinas e necessidades criadas no gerenciamento seguro de um estoque, atravs da
analise de processos, estudando maneiras e regras que sero aplicadas no desenvolvimento do
software. Atravs de um estoque pequeno pode-se estudar as dificuldades geradas por motivos
diversos em um estoque, principalmente os erros humanos que em sua maioria geram grandes
divergncias, esses erros tambm so mais difceis de localizar a fonte.
5
No entanto, deve ficar claro que a UML no uma linguagem de programao, e sim
uma linguagem de modelagem, cujo objetivo auxiliar os engenheiros de software a
definirem as caractersticas do software [...]. (2)
O gerenciamento de banco de dados evoluiu de uma aplicao de computador especializada
para um componente central do ambiente de computao moderna e, como resultado, o
conhecimento dos sistemas de banco de dados se tornou uma parte essencial de um curso de
cincia da computao. Neste texto, apresentamos os conceitos fundamentais do
6
O conceito apresentado no livro Use a cabea Java, esto presentes em todos os livros de
programao para iniciantes na programao orientada a objetos em Java, comeando pela
sintaxe e organizao dos cdigos ate pontos maiores como programao concorrente usando
threads. A grande diferena neste livro a forma como so apresentadas as informaes, uma
maneira mais clara comparado a outros livros, introduzindo o leitor a um dialogo direto com o
autor. O grande uso de imagens faz com que nosso celebro guarde com mais facilidade as
informaes
Antes de se iniciar a parte terica da leitura, o livro traz algumas dicas de como extrair o
mximo de informaes possveis e tcnicas para se guardar e treinar a programao, o que
baixa a tenso existente no leitor que esta iniciando. Os captulos apresentados no livro so:
Aprofundando-se, Uma viajem at Objetpolis, Conhea suas variveis, Como os objetos se
comportam, mtodos extra fortes, Usando a biblioteca Java, Melhor viver em Objetpolis,
Polimorfismo Real, Vida e morte de um Objeto, Os nmeros so importantes,
Comportamento arriscado, uma histria muito grfica, Trabalhe em seu swing, salvando
7
objetos Crie uma conexo, Estruturas de dados, Lance seu cdigo e Computao distribuda.
Cada capitulo foi dividido em vrios tpicos para facilitar a leitura e a busca das informaes.
O livro estar presente nas reunies e durante a implementao do projeto, de modo a auxiliar
no desenvolvimento dos mtodos e agregando ao desenvolvedor um maior conhecimento
sobre a linguagem em questo.
No humilde lanamento ao publico com a suposta verso 1.02, o Java seduziu o Java
seduziu os programadores com sua sintaxe amigvel, recursos orientados a objetos,
gerenciamento de memria e o melhor de tudo a portabilidade [...].(4)
O livro escrito por Jakob Nielsen e Hoa Lorange, tem dois objetivos, mostrar o vasto
conhecimento sobre usabilidade da web e em segundo lugar trazer a tona novas descobertas e
conceitos de usabilidade, levando em conta os conceitos existentes na dcada de 90
relacionando as com as descobertas de hoje.
Os conceitos e as tcnicas de medio utilizados no livro esto totalmente voltados para web
sites, de modo que implementao da tcnica e pesquisas devero sofrer adaptaes para um
melhor estudo da usabilidade de um software.
O livro tem como publico alvo, pessoas com objetivo de desenvolverem medirem web sites
em que o usurio ter facilidade e tranqilidade na navegao. Isso inclui web sites de
negocio, tanto para comrcios eletrnicos como para web sites corporativos. A definio de
utilizada pelo autor para negcios e mais abrangente do que apenas sites de vendas on-line
ou servios, e sim todo tipo de empreendimento. Podemos pegar como exemplo um site de
noticia, o proprietrio com certeza, vai querer que seus leitores consigam navegar encontrar
informaes sem dificuldade e com o mnimo de estresse desnecessrio, isso vale para sites de
ONGs, Governamentais e at de relacionamento, em fim qualquer pagina na web.
8
Este livro discute como as pessoas se comportam na internet e o que torna os web
sites bem ou mal sucedidos [...].(5)
3 - Documento de Requisitos
O documento de requisitos a especificao oficial dos requisitos do sistema, para os clientes,
usurios finais e desenvolvedores de software.
Nesta etapa, o engenheiro de software busca compreender as necessidades do Usurio
e o que ele deseja que o sistema a ser desenvolvido realize [...] (5)
Formalmente devemos definir que os documentos de requisitos contem: Servios e
funcionalidades que o sistema deve executar assim como informaes de restries e
descries dos processos executados pelo mesmo. O documento de requisitos tambm um
documento que visto como um contrato entre o cliente e o gerente de projetos, pois visa
validar ao final do projeto, se o software esta enquadrado nas especificaes definidas no
documento de requisitos.
10
11
A consulta dos clientes, podendo realizar pesquisa pelo Cdigo e Nome do mesmo.
A consulta dos Endereos dos Produtos, podendo realiza pesquisas pelo Cdigo do
Produto e pela descrio.
A consulta dos Fornecedores, podendo realizar pesquisas pelo Cdigo, Nome Fantasia
ou CNPJ/CPF.
12
A consulta dos produtos por fornecedor, podendo realizar pesquisas por Cdigo ou
Descrio do Fornecedor.
A consulta dos usurios, podendo realizar pesquisa pelo Id, Cdigo ou Nome do
mesmo.
A consulta dos Ajustes Internos, sendo possvel ordenar a tabela pelo Numero, Data,
ID do Usurio, Nome do Usurio, Tipo de Ajuste e Observaes.
A consulta das Notas Fiscais de Entrada, sendo possvel ordenar a tabela pelo Numero
da NF, Cdigo do Fornecedor, Data e Cdigo do Tipo de Movimento.
3.4 - Confiabilidade
O sistema ter backup e restore dos dados para facilitar a administrao.
3.5 - Eficincia
O sistema ter respostas a consultas em menos de 15 segundos.
O sistema devera iniciar a impresso dos relatrios solicitados, dentro de no mximo 5
minutos, aps sua requisio.
14
3.6 - Portabilidade
O sistema deve ser executado em computadores com nvel de processamento 2.0 GHz e 512
MB de memria RAM, Utilizando sistema operacional Windows.
O sistema deve ser capaz de armazenar dados em uma base de dados MYSQL.
O Sistema utilizara o Java 1.7 ou superior.
3.7 - Glossrio
Rotina: a descrio de todos os processos (Mtodos existentes) em nosso sistema desde
mtodos mais simples como a incluso de um novo produto, at mtodos mais complexos
como a entrada de uma Nota Fiscal.
Usurio: Pessoas que utilizam o sistema.
Descrio de Produto: Caractersticas fsicas do produto, como cor, tamanho e tipo.
CNPJ: Cadastro Nacional de Pessoa Jurdica.
CPF: Cadastro de Pessoa Fsica.
IE: Inscrio Estadual.
15
Status: Define se um cadastro esta ativo, bloqueado e tambm cancelado. Os Status podem
ser utilizados em qualquer tipo de cadastro.
Nvel: Define o nvel de acesso do Usurio no sistema.
16
4 - Viso de Analise
Na viso de analise definimos o causo de uso e a partir do mesmo devemos apresenta-se o
modelo de classe. Nesta etapa do projeto tambm definimos os atores presentes, as listas dos
casos de uso Especificao dos casos de uso e o modelo de classe.
O Diagrama de Caso de Uso procura, por meio de uma linguagem simples,
possibilitar a compreenso do comportamento externo do sistema por qualquer pessoa,
tentando apresentar o sistema por intermdio de uma perspectiva do usurio. [...]. (5)
4.1.1 - Administrador
4.1.2 - Funcionrio
18
19
Caso de Uso
Descrio
1 Incluir Usurio
1 Alterar Usurio
1 Excluir Usurio
2 Incluir Rotina
2 Excluir Rotina
4 Incluir Produtos
4 Alterar Produtos
4 Excluir Produtos
6 Incluir Fornecedores
6 Alterar Fornecedores
6 Excluir Fornecedores
excluso de Fornecedor
7 Incluir Clientes
7 Alterar Clientes
7 Excluir Clientes
8 Incluir Armazns
8 Alterar Armazns
8 Excluir Armazns
10 Enderear Produtos
12 Incluir Requisies
12 Excluir Requisies
16 Consultar Produtos
consulta de Produto
17 Consultar Armazns
18 Consultar Clientes
19 Consultar Fornecedores
21 Consultar Endereos
24 Consultar Requisies
25 Consultar Ajustes
22
23
24
5 - Prottipo
25
5.2 Cadastros
A incluso de novas informaes no Sistema de Controle de Estoque, ser feita atravs do
menu "Cadastros localizado no esquerdo da barra de menus. A efetivao das incluses no
sistema sero realizadas seguindo algumas regras: enviar mensagem de erro caso os campos
obrigatrios j no estejam preenchidos ou caso o cadastro j exista no banco de dados.
Abaixo a imagem do prottipo da janela de Cadastro de Fornecedor:
26
5. 3 - Consultas
As consultas realizadas no sistema, esto disponveis no menu Consultas na barra de
menus, ao lado dos cadastros. O usurio pode utilizar o boto pesquisa para consultar
qualquer item dentro das opes de ndices disponveis em cada consulta.
A ilustrao abaixo mostra o prottipo da janela de consulta dos fornecedores:
27
28
A segunda parte do processo de incluso das Notas Fiscais de Entrada, aps a validao do
cabealho, e onde o usurio lana os itens da Nota Fiscal do Fornecedor, lembrando que para
que o processo no tenha erros, os produtos devero estar cadastrados no sistema.
A ilustrao abaixo nos traz a segunda parte da entrada das Notas Fiscais:
29
30
6 - Viso de Dados
31
32
33
PK
FK
CAMPO
TIPO
NOT NULL
USUARIO
X
IDUSUARIO
INT
CODUSUARIO
VARCHAR
NOME
VARCHAR
SENHA
VARCHAR
VARCHAR
CARGO
VARCHAR
NIVEL
INT
IDSTATUS
INT
IDSTATUS
INT
DESCRICAO
VARCHAR
CATEGORIAS
VARCHAR
IDUSUARIO
INT
CODUSUARIO
VARCHAR
NOME
VARCHAR
CADARMAZENS
INT
CADCLIENTES
INT
CADENDERECOS
INT
STATUS
X
ACESSOS
X
X
34
CADFORNECEDORES
INT
CADGRUPOS
INT
CADPRODUTOS
INT
CADPRODFOR
INT
CADTIPOSMOVIMENTO
INT
CADUSUARIOS
INT
MOVAJUSTES
INT
MOVENTRADAS
INT
MOVREQUISICOES
INT
MOVRECALCULOS
INT
CONSAJUSTES
INT
CONSENTRADAS
INT
CONSREQUISICOES
INT
CONSSALDOS
INT
CONSARMAZENS
INT
CONSCLIENTES
INT
CONSENDERECOS
INT
CONSFORNECEDORES
INT
CONSGRUPOS
INT
CONSPRODUTOS
INT
CONSPRODFOR
INT
CONSTIPOSMOVIMENTOS
INT
CONSUSUARIOS
INT
RELANALISEMOVIMENTOS INT
ENT
RELANALISEMOVIMENTOS INT
AIDA
RELANALISEMOVIMENTOS INT
AJUSTES
RELFORNECEDORESBLOQ
UEADOS
INT
35
RELPOSICAOESTOQUE
INT
RELPRODUTOSBLOQUEAD INT
OS
CONFBANCODEDADOS
INT
GRUPO
X
IDGRUPO
INT
DESCRICAO
VARCHAR
IDPRODUTO
VARCHAR
DESCRICAO
VARCHAR
IDARMAZEM
INT
CUSTO
FLOAT
IDGRUPO
INT
IDSTATUS
INT
IDPRODUTO
VARCHAR
DESCRICAO
VARCHAR
ENDPRODUTO
VARCHAR
IDFORNECEDOR
VARCHAR
LOJA
INT
RAZAO
VARCHAR
NOMEFANTASIA
VARCHAR
ENDFOR
VARCHAR
BAIRRO
VARCHAR
UF
VARCHAR
PRODUTO
X
X
X
ENDERECO
X
FORNECEDOR
X
X
36
MUNICIPIO
VARCHAR
CEP
VARCHAR
COMPLEMENTO
VARCHAR
TIPO
VARCHAR
CNPJ
VARCHAR
DDI
VARCHAR
DDD
VARCHAR
TEL
VARCHAR
FAX
VARCHAR
VARCHAR
HOMEPAGE
VARCHAR
DTCADASTRO
DATE
IDSTATUS
INT
PRODFOR
X
IDPRODUTO
VARCHAR
IDFORNECEDOR
VARCHAR
RAZAO
VARCHAR
DESCRICAO
VARCHAR
ARMAZEM
37
IDARMAZEM
INT
DESCRICAO
VARCHAR
SALDO
X
IDPRODUTO
VARCHAR
IDARMAZEM
INT
QUANTIDADE
FLOAT
NOTA
X
NUMERON
VARCHAR
SERIEN
INT
IDFORNECEDOR
VARCHAR
DATA
DATE
IDMOVIMENTO
VARCHAR
ITEMN
INT
ITEMNOTA
X
X
IDPRODUTO
VARCHAR
NUMERON
VARCHAR
SERIEN
INT
QUANTIDADE
FLOAT
VALORUNITARIO
FLOAT
VALORTOTAL
FLOAT
X
38
IDARMAZEM
INT
IDCLIENTE
INT
NOME
VARCHAR
IDMOVIMENTO
VARCHAR
DESCRICAO
VARCHAR
TIPO
VARCHAR
MOVIMENTA
VARCHAR
VARIAVEL
VARCHAR
DESCRICAO
VARCHAR
VALOR
VARCHAR
NUMEROR
VARCHAR
DATA
DATE
IDUSUARIO
INT
IDCLIENTE
INT
IDMOVIMENTO
VARCHAR
CLIENTE
X
TIPOMOVIMENTO
X
PARAMETROS
X
REQUISICAO
X
AJUSTES
39
NUMEROJ
VARCHAR
DATA
DATE
IDUSUARIO
INT
TIPOAJUSTE
VARCHAR
OBS
VARCHAR
ITEMAJUSTE
X
X
ITEMJ
INT
IDPRODUTO
VARCHAR
QUANTIDADE
FLOAT
VALORUNITARIO
FLOAT
VALORTOTAL
FLOAT
IDARMAZEM
INT
TIPOAJUSTE
VARCHAR
NUMEROJ
VARCHAR
IDPRODUTO
VARCHAR
QUANTIDADE
FLOAT
ITEMREQ
X
X
ITEMR
X
VALORUNITARIO
40
VALORTOTAL
IDARMAZEM
INT
NUMEROR
VARCHAR
41
7 - Desenvolvimento
A implementao de um software aps todo o levantamento de requisitos, analise de estrutura
e modelagem de seu sistema de dados complexa, pois deve lidar com restries de
integridade, e um vasto conhecimento sobre a aplicao e suas regras, para que as interaes
entre o software e o ambiente possam ser adequadamente descritos. Quando os requisitos no
so completamente compreendidos, registrados e comunicados para a equipe de
desenvolvedores, provavelmente haver discrepncia entre o que o sistema desenvolvido faz e
o que ele realmente deveria fazer.
A arte de desenvolver software baseada em um modelo completamente criativo e
dinmico, sujeito a mudanas em cada passo, sejam oriundas de uma amplificao no
entendimento do valor de negcio por parte do cliente ou em atividades emergentes [...]. (8)
Nome
Descrio
JasperReport
Biblioteca
para
desenvolvimento
de
Relatrios Java.
42
iReporte
MySQL_JDBC Connector
PNG2ICO
Install Creator
ferramenta
de
compilao
NetBeans
pode
ser
baixada
atravs
do
link:
plug-in
pode
ser
baixado
no
link:
http://sourceforge.net/projects/ireport/files/iReport%20Plugin%20for%20NetBeans/, aps o
download do plug-in faa a extrao dos arquivos.
Abra o NetBeans, v ate o menu ferramentas e selecione a opo plug-ins, uma nova
janela ira se abrir, selecione a aba Baixados e nela clique no boto Instalar plug-ins. Selecione
os arquivos que foram extrados e siga com a instalao e opes padres.
ferramenta
Bat
To
Exe
Converter
pode
ser
baixada
atravs
do
link:
PNG2ICO
pode
ser
baixada
atravs
do
link:
Install
Creator
pode
ser
baixada
atravs
do
link:
Ashampoo
MyAutoPlay
Menu
pode
ser
baixada
no
link:
44
A estrutura do projeto esta dividida em nove Packages ou Pacotes, que so utilizados para
dividir e estruturar o projeto.
Os Packages so pastas onde ficam armazenados os arquivos do projeto, como imagens e
cdigos fonte, e os mesmos so essenciais para o conceito de encapsulamento. Muitos
compiladores criam automaticamente pacotes como uma forma eficaz de organizao, os
pacotes que deveram ser definidos para o projeto so listados na tabela a baixo.
Tabela 4 - Pacotes
Nome
Descrio
DAO
Pacote
de
cdigos-fonte
que
faro
para
execuo
inicial
da
aplicao.
FACTORY
FILE
IMAGE
MODEL
REPORT
VALIDATION
Deve-se antes de tudo criar todos os Packages no projeto. Clicando com o boto direito do
mouse sobre o cone pacotes de cdigo-fonte e logo aps em Novo e por fim, Pacote Java.
Veja a figura 12.
A explicao completa de como criar um Package, pode ser encontrada nos vdeos existentes
no blog Projeto Aplicao Para Controle de Estoque Java.
46
Ao criar um novo projeto no NetBeans voc precisa importar as bibliotecas que foram
baixadas, da lista de ferramentas na tabela acima. Clicando com o boto direito sobre a pasta
bibliotecas do projeto selecione a opo Adicionar jar/pasta e inclua todas as bibliotecas
baixadas para o projeto, em seguida clique novamente com o boto direito e selecione a opo
Adicionar Biblioteca, na lista que ira aparecer, selecione a opo MySQL ODBC Connector e
clique em adicionar. Pronto as bibliotecas necessrias j esto disponveis no projeto.
A explicao completa de como importar uma biblioteca, pode ser encontrada nos vdeos
existentes no blog Projeto Aplicao Para Controle de Estoque Java.
47
48
Aps a definio dos Packages, devemos dar inicio a implementao das classes do pacote
FILE, este pacote contem classes que faro a leitura e gravao do arquivo .ini que ira contar
as informaes para conexo com o banco de dados como Servidor, Porta, Banco de Dados,
Usurio e Senha.
A primeira classe a ser implementada ser a classe ManageFiles, esta classe cria um objeto do
tipo File, como podemos ver na linha oito da figura que aponta para um arquivo conf.ini que
esta na raiz do projeto.
49
Aps a definio dos itens citados devemos desenvolver um construtor para a classe
ManageFilesReader, que ao ser chamado realiza a leitura do arquivo ao qual o objeto
ManeFile faz referencia e guarda as informaes no array de strings.
Finalizando o Package FILE devemos
com
o nome
ManageFileWriter, que responsvel pela gravao das informaes no arquivo. Essa classe
devera conter um objeto do tipo FileWriter e outro do tipo BufferWriter. O objeto FileWriter
recebera no momento que for instanciado um objeto do tipo file, esse que devera ser passado
por parmetro. Aps a definio dos objetos e variveis devemos criar um mtodo para
realizar a escrita em nosso arquivo conf.ini, o mtodo deve ser public e ter o tipo de retorno
void, tambm devera receber por parmetro, um objeto tipo file e cinco Strings, com as
seguintes informaes: Servidor, Porta, alias do Banco de dados, Usurio e Senha.
50
No Package FACTORY devemos criar uma classe ConnectionFactory, a mesma deve conter
cinco variveis do tipo String para o armazenamento do endereo do Servidor, Porta, Alias do
Banco de Dados, Usurio e Senha e em seguida seus respectivos mtodos para retorno e
alterao de valores.
51
52
53
Neste Package iro todas as classes que devero fazer validaes ou processamentos das
informaes no momento da insero no banco de dados, como os tratamentos para
visualizao do usurio.
A primeira Classe que iremos implementar no Package VALIDATION ser a EncriptaSenha,
esta que tem como finalidade a codificao da senha passada ao usurio para ser gravada ao
banco de dados. A classe consiste basicamente de um nico mtodo publico static e que
recebera uma String para processamento. Aps a declarao do mtodo devemos criar um
objeto do tipo MessageDigest, que recebera o retorno do mtodo getInstance(MD5), aps
esse processo, deve se passa a instncia criada os Bytes da String senha que foi passada via
parmetro ao mtodo encripta. Na linha seguinte criamos o objeto que ira codificar os dados,
este do tipo BASE64Encoder, finalizando a classe a mesma deve retorna uma String com o
valor da senha encripitado.
onde cada mtodo responsvel por um tipo diferente de mascara para os JtextFields, de
modo que os mtodos seguem praticamente a mesma estrutura.
Os mtodos so pblicos, retornam um objeto do tipo MaskFotmatter e recebem uma String
por parmetro, onde esta ser o formato da mascara que ser aplicada ao campo de texto.
Aps a declarao do mtodo instanciado um objeto MaskFormatter que ser retornado ao
campo de texto, com a seguinte linha de comando: MaskFormatter F_Mascara = new
MaskFormatter (), devemos passar em seguida a String para o objeto utilizando o mtodo da
classe MaskFormatter setMask (String), e por fim declarar que os espaos no digitados
pelo usurio sero preenchidos com o caractere ' ' espao, para esse fim utilizamos a seguinte
linha de comando: F_Mascara.setPlaceholderCharacter (' ').
As
mascaras
restantes
seguem
formato
acrescentando
apenas
comando
55
realizar a busca, JtextField de onde ser retirado o valor pelo qual a classe ira buscar na
JTable e o ndice da coluna, esse mtodo ser publico e no ter retorno.
Aps a declarao do mtodo devemos declara duas variveis sendo a primeira do tipo inteiro,
esta que atribuda para controlar a linhas atual da JTable, e a seguinte ser Lgica para
realizar a validao do lao que percorrera a JTable.
A implementao do lao simples o mesmo recebera a varivel lgica declara no inicio do
mtodo, esta que deve ser inicializada como verdadeira (true), formando assim o cabealho do
lao.
O corpo contem duas Strings que devem contem o valor a ser encontrado e outra com o valor
da linha atual. Seguindo com o cdigo teremos uma estrutura de controle que devera compara
as Strings, se as variveis tiverem o mesma valor o lao interrompido, setando a linha atual
da JTable, se o mesmo no for igual o cdigo continuara sua execuo padro entrando em
uma segunda estrutura de controle, onde verificado se a tabela no foi percorrida por
completo e se a varivel achou continua como true. Caso, toda a tabela seja percorrida e a
varivel achou no tenha o valor false, apresentado ao usurio uma mensagem
informando que o valor procurado no se encontra na JTable.
56
Finalizando o Package VALIDATION temos a classe Perguntas, essa classe responsvel por
criar e gerenciar o retorno das perguntas informadas ao usurio. Como por exemplo, as
perguntas exibidas quando o usurio vai executar a excluso de registro no sistema.
A classe formada por dois mtodos, um deles para a pergunta padro, o mtodo
declarado como publico e tem como retorno um valor lgico, no nosso caso declarada uma
varivel do tipo inteiro e recebe o retorno do JOptionPane.ShowConfirmeDialog, que
retorna um sim ou um no dependendo do boto clicado pelo usurio. O segundo mtodo
declarado da mesma forma que o primeiro, mas recebe um parmetro a mais que ser do tipo
String, esse ira ser a mensagem a ser informada dentro do painel.
O prximo Package ser o MODEL este que de suma importncia para o projeto, pois o
mesmo ira guardar os objetos como, cliente, fornecedor, notas de entrada e etc. Vamos pegar
57
apenas um cdigo para analise, levando em considerao que os outros modelos tm a mesma
estrutura s que esta com atributos diferentes.
Temos como exemplo a classe Cliente, esta e formada por seus atributos que so o Id do
cliente e o nome do mesmo. Cada atributo contem os mtodos para alterao e retorno de seus
valores. Tambm no podemos esquecer que estes atributos, que iro estar com os valores que
iram ser inseridos no Banco de Dados.
O prximo Package ser o GUI este que guarda os fontes de telas ou Interface Grfica, aquela
que ira ser apresentada ao diretamente ao usurio. Essa classe formada por JFrames. No
desenvolvimento do projeto as janelas de usurio foram divindades em dois tipos. Os Frames
e os Forms. Os frames so as janelas onde o usurio pode apenas visualizar as informaes e
acessar os botes que acesso novas janelas Frames ou Forms, esses que por sua vez so
janelas onde o usurio devera entrar com valores a serem processados pelo sistema. Para
58
exemplificar as Classes Frame, utilizaremos a classe FrameCliente, esta que tem como
componente um JTable, para visualizao das informaes acessadas no banco, Um Field
Para pesquisa na JTable, e trs JButton que faro a interao com novas janelas. As classes
frame contam com um mtodo initComponents (), esse mtodo tem como objetivo
inicializar os item da tela. Nele voc deve instanciar os objetos declarados, como a JTable, os
JButton e etc. A classe tambm conta com um construtor que deve chamar o mtodo
initComponents () e em seguida tornar o mesmo visvel, com o comando setVisible (true).
Na figura abaixo podemos verificar dois construtores. O primeiro inicializa o frame caso o
usurio queira consultar, o segundo chama o frame para alterao e incluso de registros.
O outro tipo de janela que se deve criar so os formulrios ou form. Essas tem como
finalidade a entrada das informaes para dentro do sistema, como por exemplo o
cadastramento de um novo cliente. Essa classe deve conter dois construtores para a
inicializao da janela, esse construtor deve chamar o mtodo de inicializao dos objetos
esse que segue as mesmas regras do utilizado nas classes frames. O primeiro construtor chama
a janela com os JTextFields vazios e o segundo deve chamar o Field com as informaes
59
requisitadas na janela anterior. Deve-se ter um controle sobre qual janela estamos utilizando,
para que, quando o usurio clicar em concluir o sistema saiba, se ele esta em uma janela de
visualizao onde nenhuma informao deve ir para o banco ou uma incluso. Em nosso
sistema foi utilizada um varivel do tipo inteiro, esta que inicializada com ao chamar o
construtor, que seta a mesma com 0 para incluso e 1 para visualizao. O mtodo
initComponents () segue o mesmo raciocnio que o utilizado nas classes frame.
A classe main do Package EXECUTE, tem como objeto chamar a janela inicial do
programa.
60
O Package REPORT contem classe que tem como funo a configurao e execuo dos
relatrios existentes no sistema, ele contem mtodos onde cada mtodo e responsvel por um
relatrio. Todos os mtodos seguem o mesmo padro, devem contem um string com a Select
a ser executada no banco de dados, o retorno do banco de dados deve ser convertido em um
objeto
do
tipo
JRResultSetDataSource,
esse
que
ser,
utilizado
pelo
mtodo
61
Por fim chegamos ao Package DAO, este que faz todo o tratamento da informao inserida e
retirada do banco de dados.
A classe cria uma varivel do tipo Cionnection, esta que recebera a conexo com realizada
com o banco de dados atravs do mtodo getConnection () da classe connectionFactory.
O mtodo getCodCliente () verifica qual o ultimo cliente incluso no sistema e soma mais
um a numerao gerando a numerao do prximo cliente automaticamente.
62
Mtodo getTabelaCliente () realiza uma select em toda a tabela e preenche a JTable com as
mesmas.
64
8 - Analise de Resultados
Foram realizados testes e analisados os comportamentos de todas as rotinas do sistema, todas
esto realizado suas operaes descritas nos requisitos do documento.
Tabela 5 - Lista de processos testados no sistema
Rotina
Descrio
Incluso de Cadastros
Excluso de Cadastros
Alterao de Cadastros
Acessos de Usurios
Incluso de Movimentos
de
todos,
de
forma
ajustar
Consulta
os
cadastros
ou
movimentos
A rotina para cadastro e manuteno dos armazns foi testada e analisada, e os resultados
foram os esperados e descritos no levantamento dos requisitos. Para se ter acesso ao cadastro
de Armazns devemos acessar o menu Cadastro e logo em seguida o item Armazns.
65
Foi realizada a analise e testes da rotiona de excluso dos armazns, o processo foi realizado
de acorco com as opes do sistema. Foram realizados testes com as rotinas que utilizam o
mesmo processo e a mesma foi executado com sucesso em todas elas. Como nos mostra a
figura 15.
66
67
68
O cadastro de usuarios conta com a opo de acessos, onde liberado a cada usuario suas
respectivas rotinas. Foram realizados tetes e analisado o processo de liberao de acessos aos
usuarios. O usuario utilizado para teste foi o proprio administrador do sistema, onde foram
retirados acessos do mesmo e depois liberados. Veja as figuras 18 e 19.
69
Depois de retirados os acessos, foi concluda a operao e fechado o sistema. Aps acess-lo
novamente as alteraes foram aplicadas de forma que as rotinas retiradas do usurio esto
indisponveis. Veja a figura 19.
70
Depois de realizadas as analises nas rotinas de cadastro, Foram realizados os testes e analise
das rotinas do menu Movimentos, As imagens abaixo nos mostra a incluso de uma nota
fiscal de entrada, esta rotina se encontra no menu Movimentos e em seguida a opo Notas de
Entrada.
Foi inclusa uma nota fiscal de entrada de numerao 000001 e srie 1, a data de lanamento
inclusa foi 02/12/2012 e o tipo de movimento utilizado foi o A01, esse tipo de movimento
deve ser cadastrado antes dos lanamentos, Fornecedor 000001 e por fim um produto de
cdigo 00001 com a quantidade 1. Ao clicar em concluir o sistema realizou a incluso da nota
fiscal com sucesso.
71
72
Ao consultar o saldo dos produtos, podemos verificar o saldo do produto incluso na nota
fiscal 000001. Veja a figura 22.
73
74
75
Aps a execuo da rotina o saldo do produto 000001 foi reajustado para sua quantidade
correta. Verificamos isso na figura 25.
76
Tambm foi realizado o teste com todos os produtos cadastrado onde devemos inserir o
simbulo * no lugar do cdigo do produto, desta forma o sistema ira recalcular o saldo de
todos os produtos.
Realizamos o teste em 3 produtos, sendo eles os cdigos 000002, 000003 e 000004 e
seus respectivos saldos 200, 200 e 200. Realizamos a alterao do ambiente deixando as peas
com as as seguintes quantidades: 20, 30 e 40.
Aps o processamento os saldos foram ajustados. Veja as figuras 26, 27 e 28.
77
78
Aps executar a retorna os saldos foram reajustados como nos mostra a figura 28.
79
Foi analisado e testado tambem as consultas existentes no sistema, foi criado um ambiente
onde cadastramos items e depois consultamos os mesmo. Para que as consutas sejam
realizadas no sistema devemos acessar o menu Consulta depois escolher entre as consultas de
cadastros ou as consultas de movimentos. As figuras 29 e 30 nos mostram a consulta do
cadastro de Produtos e Notas de Entrada.
80
81
82
Figura 50 - Relatrios
83
84
9 - Consideraes Finais
O propsito deste trabalho foi analisar e desenvolver um sistema para controle de estoque,
onde empresas ou pessoas em suas prprias residncias utilizassem para um melhor controle
de seus estoques e at mesmo de itens pessoais. Apresentamos tambm os conceitos de
desenvolvimento de um sistema de controle de estoque tambm desenvolvimento da
documentao.
Em sua grande maioria, as empresas de grande e mdio porte tendem a controlar os estoques
por planilhas eletrnicas, gerando enormes trabalhos manuais nas manutenes e retiradas de
suas informaes. Empresas de grande porte tratam seus estoques com sistemas mais
sofisticados e sistemas integrados ERPs, os quais so compostos por mdulos, onde a
empresa controla no somente os estoques, mas tambm, faturamento e todas as reas da
mesma.
O software desenvolvido neste projeto traz conceitos avanados como o controle por tipos de
movimento, onde as entradas no estoque podem ser diferenciadas por tipos de movimento e
onde os mesmo gerenciam se as movimentaes podem ou no alterar os saldos dos produtos.
Essa mecnica de controle pode ser encontrada em ERPs como, por exemplo, o software da
TOTVS Protheus 11, o mesmo conta com os Tipos de Entrada e Sada, para um melhor
controle do seu modulo de Estoque e Custos.
O sistema se mostrou confivel, por conter ferramentas de analise e recalculo. Com esta
ferramenta o sistema possibilitou a confirmao de informaes e o ajuste de saldos
incorretos, onde alteraes diretas ao banco de dados podem ser recalculadas
automaticamente.
O projeto tambm contou com nveis de acessos que foram implantados no sistema, para um
melhor controle interno, desta forma o sistema pode ser utilizado por vrios usurios, onde
cada um deles teve limites implantados de forma que o sistema se encarregou de analisar e
liberar as informaes conforme o cadastrado.
85
10 - Referncias
4. SIERRA, Kathy e BATES, Bert. Use a Cabea Java. Rio de janeiro: 2007.
86
6. http://www.julianoribeiro.com.br/troca/banco_de_dados/material_der.pdf, 08/06/2012
7. http://www.dc.ufscar.br/~marina/cursos/ApostilaProjBD-Alunosatualizando.pdf,
08/06/2012
87