GEF: Gerenciador Financeiros

Propaganda
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
CATARINENSE - CAMPUS AVANÇADO SOMBRIO
RAQUEL FERREIRA PEREIRA
GEF: GERENCIADOR FINANCEIRO
Sombrio (SC)
2014
2
RAQUEL FERREIRA PEREIRA
GEF: Gerenciador Financeiro
Trabalho de Conclusão de Curso apresentado como
requisito para a obtenção do título de Técnico em
Informática Integrado ao Ensino Médio, no Curso de
Técnico em Informática Integrado ao Ensino Médio,
do Instituto Federal de Educação, Ciência e
Tecnologia Catarinense – Campus Avançado
Sombrio.
Orientador: Prof. Me. Iuri Sônego Cardoso
Sombrio (SC)
2014
3
RAQUEL FERREIRA PEREIRA
GEF: Gerenciador Financeiro
Esta Produção Técnico-Científica foi julgada
adequada para obtenção do título de Técnico em
Informática Integrado ao Ensino Médio e aprovada
pelo Curso de Técnico de Informática Integrado ao
Ensino Médio do Instituto Federal de Educação,
Ciência e Tecnologia Catarinense – Campus
Avançado Sombrio.
Área de
Softwares
Concentração:
Desenvolvimento
de
Sombrio, 01 de dezembro de 2014.
Prof. Me. Iuri Sônego Cardoso
Instituto Federal Catarinense – Campus Avançado
Sombrio
Orientador
Prof. Cristina Amboni da Silva
Instituto Federal Catarinense – Campus Avançado
Sombrio
Membro
Prof. Me. Marleide Coan Cardoso
Instituto Federal Catarinense – Campus Avançado
Sombrio
Membro
4
DEDICATÓRIA
Dedico este trabalho a meus amigos,
que transformaram minha vida e me ajudaram a amadurecer.
5
AGRADECIMENTOS
Agradeço primeiramente ao professor e orientador Iuri Sônego Cardoso, que
acreditou em mim e me ajudou com a maior paciência. Também agradeço aos
amigos e a família que acreditaram em mim, quando nem mesmo eu acreditava.
6
EPÍGRAFE
“Um dos momentos mais assustadores da vida é quando você
percebe que a única pessoa que pode te salvar é você mesma”
Demi Lovato
7
RESUMO
Este trabalho apresenta a elaboração do projeto e o desenvolvimento do
software GeF: Um programa voltado para o registro de finanças de uso pessoal.
Contém registrado os principais passos para desenvolver um software, desde o
levantamento de requisitos até os resultados finais. No desenvolvimento deste
trabalho foram utilizadas aplicações de técnicas estudadas durante o curso técnico,
como a programação de computadores, a modelagem e implementação de banco de
dados, projetos de softwares e metodologia.
Palavras-chave: Software. Requisitos. Banco de dados.
8
ABSTRACT
This work presents the development of the project and the development of
GeF software: a program for the registration of finance for personal use. Contains
recorded the major steps to develop a software, since the lifting of requirements until
the final results. In the development of this work were used applications of
techniques studied during the course, as the computer programming, modeling, and
implementation of database, projects of software and methodology.
Keywords: Software. Requirements. Database.
9
LISTA DE FIGURAS
Figura 1: Exemplos de cálculo em Algoritmos ...................................................................................... 16
Figura 2: Exemplo de código Java ........................................................................................................ 18
Figura 3: Exemplo de Modelo ER ......................................................................................................... 19
Figura 4: Exemplo de Modelo Conceitual ............................................................................................. 20
Figura 5: Exemplo SQL ......................................................................................................................... 20
Figura 6: Diagrama ER .......................................................................................................................... 23
Figura 7: Strutured Query Language..................................................................................................... 24
Figura 8: Painel de exibição das contas ............................................................................................... 26
Figura 9: Tela de Cadastro de Contas .................................................................................................. 27
Figura 10: Tela de Detalhes da Conta .................................................................................................. 28
Figura 11: Painel de exibição dos Bancos ............................................................................................ 29
Figura 12: Tela de Cadastro de Banco ................................................................................................. 29
Figura 13: Painel de exibição de Categorias para transações ............................................................. 30
Figura 14: Tela de Cadastro de Categoria ............................................................................................ 31
Figura 15: Painel de exibição dos favorecidos ...................................................................................... 32
Figura 16: Tela de Cadastro de Favorecido .......................................................................................... 32
Figura 17: Painel de exibição das Movimentações financeiras ............................................................ 34
Figura 18: Tela de Cadastro de Movimentação .................................................................................... 35
Figura 19: Painel de exibição de Relatórios de movimentações das contas ........................................ 35
10
LISTA DE SIGLAS
GEF: Gerenciador Financeiro
BD: Banco de Dados
SGBD: Sistema Gerenciador de Banco de Dados
SQL: Linguagem de Consulta Estruturada (Strutured Query Language)
ER: Entidade-Relacionamento
DER: Diagrama Entidade-Relacionamento
DDL: Linguagem de Definição de Dados (Data Definition Language)
DML: Linguagem de Manipulação de Dados (Data Manipulation Language)
IDE: Ambiente Integrado de Desenvolvimento (Integrated Development
Environment)
GUI: Interface Gráfica do Usuário (Graphical User Interface)
11
Sumário
1. INTRODUÇÃO ...................................................................................................... 13
2. OBJETIVOS.......................................................................................................... 14
2.1. Objetivo Geral ..................................................................................................... 14
2.2. Objetivos Específicos .......................................................................................... 14
3. REFERENCIAL TEÓRICO ................................................................................... 15
3.1. Levantamento de Requisitos............................................................................... 15
3.1.1.Requisitos Funcionais ...................................................................................... 15
3.1.2.Requisitos Não funcionais ................................................................................ 15
3.2. Programação de Computadores ......................................................................... 16
3.2.1.Algoritmos ........................................................................................................ 16
3.2.2.Linguagens de Programação ........................................................................... 17
3.2.3.Java .................................................................................................................. 17
3.3. Banco de Dados ................................................................................................. 18
3.3.1.Modelo Entidade-Relacionamento ................................................................... 18
3.3.2.Modelo Relacional ............................................................................................ 19
3.3.3.Strutured Query Language (SQL) .................................................................... 20
3.3.4.Sistema Gerenciador de Banco de Dados (SGBD) .......................................... 21
4. MATERIAIS E MÉTODOS .................................................................................... 22
4.1. Materiais ............................................................................................................. 22
4.1.1.NetBeans IDE 8.0 ............................................................................................. 22
4.1.2.MySQL Workbench 6.1 .................................................................................... 22
4.1.3.BrModelo .......................................................................................................... 22
4.2. Métodos .............................................................................................................. 23
4.2.1.Definição de requisitos ..................................................................................... 23
4.2.2.Modelagem do Banco de Dados ...................................................................... 23
4.2.3.Desenvolvimento e Testes do Sistema ............................................................ 25
5. RESULTADOS E DISCUSSÕES.......................................................................... 26
5.1. Tela principal/ Painel Contas .............................................................................. 26
5.2. Cadastro de Contas/ Editar Contas .................................................................... 27
5.3. Detalhes da conta ............................................................................................... 28
5.4. Painel Bancos ..................................................................................................... 28
5.5. Cadastro de Banco/ Editar Bancos ..................................................................... 29
5.6. Painel Categorias ................................................................................................ 30
5.7. Cadastro de Categorias/ Editar Categoria .......................................................... 31
12
5.8. Painel Favorecidos ............................................................................................. 31
5.9. Cadastrar Favorecidos/Editar Favorecidos ......................................................... 32
5.10. Painel Movimentações ..................................................................................... 33
5.11. Nova Movimentação/ Editar Movimentação ..................................................... 34
5.12. ainel Relatório de Movimentações ................................................................... 35
6. CONSIDERAÇOES FINAIS .................................................................................. 36
REFERÊNCIAS ................................................................................................................... 37
13
1.
INTRODUÇÃO
Para este trabalho foi desenvolvido o software GeF, um programa voltado
para a área de finanças pessoais, que busca o registro de movimentações de
dinheiro
em
uma
determinada
conta.
O
gerenciador
financeiro
registra
movimentações e com elas é possível visualizar alguns relatórios financeiros, como
listas que exibem as transações por meio de filtros. Este tema foi escolhido pelo fato
de que, mesmo já havendo software semelhante no mercado, este seria na sua
forma gratuita, limitado quanto ao número de contas que podem ser registradas e
com algumas utilidades desnecessárias ou complexas demais para uso trivial, como
taxas de câmbio e investimentos. A partir destas considerações, optou-se neste
projeto pela criação de um software mais simples sem limites na quantidade de
contas cadastradas.
14
2.
OBJETIVOS
Neste capitulo são apresentados os objetivos deste trabalho.
2.1.
Objetivo Geral
Desenvolver um software para controle de finanças pessoais, aplicando
conhecimentos em diversas áreas estudadas durante o curso, como programação
de computadores, banco de dados, projeto de software e metodologia.
2.2.
Objetivos Específicos

Definir os requisitos do software.

Aplicar programação na linguagem Java para: Registrar contas
bancarias, movimentações de deposito ou retirada, exibir relatórios de
movimentações.

Projetar um banco de dados: Modelo-o por meio de diagramas,
implementando-o para ser capaz de armazenar e buscar os dados
necessários para o software.
15
3.
REFERENCIAL TEÓRICO
Este capítulo aborda a pesquisa bibliográfica feita para o trabalho. Nela
encontra-se o conhecimento que auxilia no melhor entendimento de como foi feito o
projeto e desenvolvimento do software.
3.1.
Levantamento de Requisitos
O levantamento de requisitos é a primeira parte no desenvolvimento de um
software, nele são levantadas questões como: quais funcionalidades deve ter, o que
ele deve fazer, aparência desejada, entre outras características. Geralmente o
levantamento de requisitos é feito através de entrevistas com o cliente, ou no caso
de não haver um cliente através de pesquisa de mercado. Após o levantamento de
requisitos estes são definidos como funcionais e não funcionais. (BEZERRA, 2007)
3.1.1. Requisitos Funcionais
Os requisitos funcionais são declarações de como o software deve reagir a
determinadas entradas e como deve se comportar em certas situações. Ele também
pode explicitar o que o software não deve fazer. (SOMMERVILLE, 2011)
Exemplos:
“O software deve cadastrar notas dos alunos”;
“O software deve calcular a média aritmética das notas por aluno”;
3.1.2. Requisitos Não funcionais
Os requisitos não funcionais são limitações ou funções do software. Incluem
restrições no processo de desenvolvimento e restrições impostas por normas. Eles
aplicam-se ao software como um todo. (SOMMERVILLE, 2011)
Exemplos:
“O sistema deve ser em Java”;
“O sistema deve rodar em tela cheia”;
16
3.2.
Programação de Computadores
O desenvolvimento de um programa necessita de três etapas: a análise, que
neste trabalho estaria ligado ao levantamento de requisitos citado anteriormente, e
também o algoritmo e a programação que serão apresentados neste tópico.
(ASCENCIO, 2007)
3.2.1. Algoritmos
Algoritmos são sequencias de comandos que devem ser executados,
resultando em determinada ação. Nesses comandos tem de ser definidos
exatamente o que deve, e como deve ser feito. Existem várias formas de
representação de algoritmos, sendo as mais utilizadas: descrição narrativa,
fluxograma e pseudocódigo. (ASCENCIO, 2007)
A descrição narrativa consiste em escrever os algoritmos em texto, utilizando
uma linguagem natural (por exemplo, língua portuguesa). O Fluxograma consiste em
escrever os algoritmos com símbolos gráficos pré-definidos, seu entendimento é
mais fácil que a descrição narrativa. O pseudocódigo consiste em escrever o
algoritmo por meios de regras pré-definidas, ele é o mais fácil de passar para a
linguagem de programação. (ASCENCIO, 2007)
Figura 1: Exemplos de cálculo em Algoritmos
(B)
(A)
 Pegue a primeira nota;
 Pegue a segunda nota;
 Some as notas;
 Divida o resultado por
dois;
 Mostre o resultado;
Fonte: A autora, 2014.
Algoritmo “Nota_semestral”
Var
Nota1, nota2, Media: real
Inicio
Escreva (“Digite a primeira nota: ”)
Leia (nota1)
Escreva (“Digite a segunda nota: ”)
Leia (nota2)
Media <= (nota1 + nota2) /2
Escreva (“A media é ”, media)
fimalgoritmo
(C)
Inicio
Nota1, Nota2
Media = (Nota1+Nota2) /2
“A media é ” Media
Fim
17
O exemplo que aparece na Figuras 1, A, B e C, descreve como deve ser feita
a média de duas notas, e apresentar o resultado.
3.2.2. Linguagens de Programação
Linguagem de programação são instruções que fazem a comunicação entre
usuário e computador. Estas instruções são interpretadas pela máquina de forma
binária, ou seja, zero e um. Atualmente é possível dividir as linguagens de
programação em dois níveis: as de baixo nível e as de alto nível. (DEITEL, 2010)
Linguagens de baixo nível são linguagens interpretadas diretamente pelo
computador, sendo mais rápida, porém com maior dificuldade de compreensão para
o programador. Exemplos destas linguagens são a linguagem de máquina (ou
binária), que consiste em códigos formados por zeros e uns, e a assembly, que era
composta por abreviações do inglês que representam as operações e são
convertidos em linguagem binária por programas tradutores chamados assemblers.
(DEITEL, 2010)
Já as linguagens de alto nível são de mais fácil utilização dos programadores,
por ser formada por instruções parecidas com o inglês cotidiano e ainda possuir
conotações matemáticas comuns. As preferidas pelos profissionais são o C, C++ e a
mais utilizada de todas, o Java. Essas linguagens são traduzidas para linguagem de
máquina por programas compiladores. (DEITEL, 2010)
3.2.3. Java
É uma linguagem de alto nível, criada em 1991, baseada em C++. Mas
somente chamou a atenção quando resolveram utilizá-la para adicionar conteúdo
dinâmico à internet, em 1995. É usada atualmente para programas de grande porte,
aplicativos móveis, aplicativos e funcionalidades da web. (DEITEL, 2010. p.6) Possui
como características a simplicidade, orientação a objetos, portabilidade e segurança.
(ASCENCIO,2007. p.10) O código do exemplo na Figura 4, é equivalente ao
exemplo de algoritmo.
18
Figura 2: Exemplo de código Java
import java.util.Scanner;
public class calculoMedia {
public static void main(String[] args) {
float nota1, nota2, media;
Scanner teclado = new Scanner(System.in);
System.out.println(“Digite a primeira nota: “);
nota1 = teclado.nextInt();
System.out.println(“Digite a segunda nota: ”);
nota2 = teclado.nextInt();
media = (nota1+nota2)/2);
System.out.println(“A media é “+ media);
}
}
Fonte: A autora, 2014.
3.3.
Banco de Dados
O banco de dados é uma base de armazenamento de dados, ou informações
que podem ser coletadas em um ambiente, por exemplo: a altura de uma pessoa é
uma informação dela. Ou seja, o banco de dados guarda em registros as
informações que são coletadas no programa para um uso futuro (ANGELOTTI,
2010).
3.3.1. Modelo Entidade-Relacionamento
Também chamado de modelo ER (Entidade-Relacionamento), o modelo
entidade-relacionamento preocupa-se em estar graficamente o mais próximo
possível da visão do usuário. Ele pode ser utilizado para modelagem conceitual, que
segundo Heuser (2009, p.25) registra os dados que podem aparecer no banco de
dados, mas não registra como estão armazenados no SGBD (Sistema Gerenciador
de Banco de Dados), e tem por objetivos descrever os dados que serão
armazenados e a quais outros dados ou tabelas estão relacionados. Toda essa
representação gráfica é chamada de Diagrama de Entidade e Relacionamento
(DER). (ANGELOTTI, 2010)
19
O DER é constituído por entidades, atributos e relacionamentos. Uma
entidade representa um objeto sobre o qual se quer armazenar dados (exemplo:
funcionário). O atributo é uma propriedade ou característica da entidade, um dado
que a descreve. Em uma entidade chamada Funcionário, seus atributos poderiam
ser: nome, CPF, RG, endereço, entre outros. Relacionamentos são as ligações entre
entidades. Como demostra a Figura 5: a entidade Funcionário tem um
relacionamento chamado Pertence com a entidade Setor. (ANGELOTTI, 2010)
Figura 3: Exemplo de Modelo ER
Funcionário
(0,n)
Pertence
código
nome
(1,1)
Setor
codigoSetor
nome
caracteristica
Fonte: A autora, 2014.
3.3.2. Modelo Relacional
O Modelo Relacional é utilizado para criar um modelo lógico de banco de
dados. Ele preocupa-se em como os dados devem ser armazenados, também é
definido os tipos de dados para cada atributo. Este modelo tem como objetivo
representar os dados como uma coleção de tabelas, que devem apresentar atributos
(colunas), seguidos do tipo de atributo e referências. (ANGELOTTI, 2010)
Dois importantes atributos em uma tabela são a chave primaria (primary key)
e a chave estrangeira (foreign key). A chave primaria será um elemento único na
tabela, não podendo repetir valores, sendo estes obrigatórios (não nulos). A chave
primária é responsável pela identificação dos registros (linhas) armazenados na
tabela. A chave estrangeira é um atributo que fará referência à chave primária de
outra tabela, fazendo assim uma relação entre tabelas. (ANGELOTTI, 2010)
No exemplo da Figura 6, a tabela Funcionário possui chave primária código, o
atributo nome, e uma chave estrangeira chamada Setor_códigoSetor, que faz
referência a chave primária da tabela Setor.
20
Figura 4: Exemplo de Modelo Conceitual
Fonte: A autora, 2014.
3.3.3. Strutured Query Language (SQL)
Linguagem de consulta estruturada ou SQL (Strutured Query Language), é a
linguagem padrão para banco de dados relacional. Embora “consulta” faça parte do
nome, ela inclui operações de definição (DDL) e manipulação (DML) de dados. O
conjunto de comandos DDL contém os comandos de definição e criação de uma
base de dados, comandos estes que servem para criar, alterar e excluir objetos no
banco (exemplo tabelas), e possui também comandos para especificação de direitos
de acesso e para a criação de restrições de integridade. Já a DML possui comandos
para consultar, inserir, alterar e excluir somente dados do banco de dados. (DATE,
2004)
Figura 5: Exemplo SQL
CREATE DATABASE Empresa;
USE Empresa;
CREATE TABLE Setor (
CodigoSetor INT,
Nome VARCHAR(45),
Categoria VARCHAR(20),
PRIMARY KEY (CodigoSetor)
);
CREATE TABLE Funcionario (
Codigo INT,
Nome VARCHAR(45),
CodigoSetor INT,
PRIMARY KEY (Codigo),
FOREING KEY (CodigoSetor) REFERENCES Setor (CodigoSetor)
);
Fonte: A autora, 2014.
21
O exemplo da Figura 7 demonstra a criação do Banco de Dados chamado
Empresa, e após selecioná-lo, são criadas as tabelas Setor e Funcionário, com seus
atributos e seus respectivos tipos de variáveis.
3.3.4. Sistema Gerenciador de Banco de Dados (SGBD)
O SGBD é uma ferramenta usada para melhor controle ao acesso e
manutenção de dados armazenados em um banco. Tem como funções a definição e
a manipulação de dados. Ele deve incluir um processador ou compilador DDL (Data
Definition Language) para entender o formato dos dados e convertê-los para o
apropriado. Também deve incluir um processador ou compilador DML (Data
Manipulation Language) para poder buscar, atualizar, excluir ou acrescentar dados
no banco de acordo com as necessidades do usuário. (ANGELOTTI, 2010)
Ele possui como principais características o Acesso Concorrente, o
Gerenciamento de Transações, a aplicação de regras de Segurança e regras para a
garantia de Integridade da base de dados. O Acesso Concorrente permite que mais
de uma pessoa possa acessar o banco de dados ao mesmo tempo, sem que haja
interferência. O Gerenciamento de Transações cuida das transações no banco de
dados. Estas são divididas em várias operações, e em caso de erro em alguma
dessas operações, desfaz a transação afim de manter integridade do banco.
A Segurança é feita por mecanismos do SGBD para a criação de regras.
Estas podem abranger definição de login e senha para os usuários, de permissões
de acesso ao SGBD, o que cada usuário pode fazer – só ler ou também alterar os
dados – ou quais dados ele pode ou não ter acesso. As regras de Integridade são
feitas para verificar se os dados que estão sendo adicionados ao banco de dados
estão corretos, protegendo assim o usuário de si mesmo impedindo que aconteçam
erros. (DATE, 2004)
22
4.
MATERIAIS E MÉTODOS
Este
capítulo
apresenta
os materiais e
os
métodos utilizados
no
desenvolvimento do projeto. Esta é a parte do projeto em que aplica-se o que foi
estudado durante o curso.
4.1.
Materiais
Esta seção apresenta um breve resumo sobre os softwares usados para o
desenvolvimento do projeto.
4.1.1. NetBeans IDE 8.0
O NetBeans IDE1 é um ambiente de desenvolvimento que trabalha com várias
linguagens, como: Java, HTML, JavaScript, e CSS. Neste projeto ele foi utilizado
para a programação na linguagem Java. Ele foi escolhido para o trabalho por ser um
software gratuito, e por ser o programa que é utilizado no curso para as aulas de
programação.
4.1.2. MySQL Workbench 6.1
O MySQL Workbench2 é uma ferramenta usada para a modelagem de dados,
que trabalha com diagramas ER e scripts SQL. Foi utilizado para a maior parte do
desenvolvimento do Banco de Dados. Ele é gratuito e de fácil utilização, por isso foi
escolhido para o desenvolvimento deste trabalho.
4.1.3. BrModelo
O BrModelo3 é um programa para a criação de modelos relacionais de forma
visual. Ele foi usado no início do desenvolvimento do Banco de Dados. Foi escolhido
por ser simples, de fácil utilização e portátil. Além de ser um software gratuito que foi
utilizado no curso.
1
IDE Recursos do Netbeans. Disponível em: <https://netbeans.org/features/index.html>. Acesso em 17 de
dezembro de 2014.
2
XAVIER, Andressa. MySQL Workbench. Disponível em: <http://www.baixaki.com.br/download/mysqlworkbench.htm>. Acesso em: 17 de dezembro de 2014.
3
MARTINS, Elaine. brModelo. Disponível em: <http://www.baixaki.com.br/download/brmodelo.htm>. Acesso em:
17 de dezembro de 2014.
23
4.2.
Métodos
Neste trabalho foram utilizadas as metodologias de Pesquisa Bibliográfica
(Referencial Teórico) e Pesquisa Descritiva que emprega a elaboração e
desenvolvimento do projeto, neste trabalho ela é apresentada nesta seção que
relata o desenvolvimento do projeto, com as seguintes etapas: definição dos
requisitos, modelagem do banco de dados, desenvolvimento e testes do sistema.
4.2.1. Definição de requisitos
Os requisitos do software foram definidos em reuniões com o orientador, pois
o software não é voltado para um cliente específico. Com as reuniões foi definido
que o software deveria: exibir relatórios das movimentações, podendo estes serem
filtrados por alguma característica em comum; fazer registros de contas, bancos,
categorias, favorecidos, e as próprias movimentações; calcular os saldos totais das
movimentações por conta ou outro ponto em comum entre as transações.
4.2.2. Modelagem do Banco de Dados
Com os requisitos definidos foi criado o diagrama ER, que está na Figura 8,
utilizando o BrModelo, para um entendimento de quais dados seriam armazenados
no banco de dados.
Figura 6: Diagrama ER
Fonte: A autora, 2014.
24
Após as entidades possuírem seus atributos e os relacionamentos serem
definidos no diagrama ER, isso foi implementado em SQL, utilizando o MySQL
Workbench 6.1, como mostra a Figura 9.
Figura 7: Strutured Query Language
CREATE DATABASE GeF;
USE GeF;
CREATE TABLE Banco ( codbanco INT AUTO_INCREMENT,
nome VARCHAR(50),
fone INT,
site VARCHAR(70),
PRIMARY KEY (codbanco));
CREATE TABLE Conta ( codconta INT AUTO_INCREMENT,
num_agencia VARCHAR(8)NOT NULL,
num_conta VARCHAR(8) NOT NULL,
codbanco INT,
nome VARCHAR(50) NOT NULL,
tipoConta VARCHAR(30),
CONSTRAINT fk_banco_cod FOREIGN KEY (codbanco)
REFERENCES Banco (codbanco),
PRIMARY KEY (codconta),
UNIQUE INDEX id_conta (num_agencia,num_conta,codbanco));
CREATE TABLE Categoria ( codcategoria INT AUTO_INCREMENT,
nome VARCHAR(50) NOT NULL,
PRIMARY KEY (codcategoria));
CREATE TABLE Favorecidos ( codfavorecido INT AUTO_INCREMENT,
fone INT,
nome VARCHAR(50) NOT NULL,
email VARCHAR(70),
PRIMARY KEY (codfavorecido));
CREATE TABLE Movimentacao ( codmovimentacao INT AUTO_INCREMENT,
data DATE NOT NULL,
tipo VARCHAR(30) NOT NULL,
valor DOUBLE NOT NULL,
codcategoria INT,
codfavorecido INT,
codconta INT,
PRIMARY KEY (codmovimentacao),
CONSTRAINT fk_categoria_cod FOREIGN KEY (codcategoria)
REFERENCES Categoria (codcategoria),
CONSTRAINT fk_favorito_cod FOREIGN KEY (codfavorecido)
REFERENCES Favorecidos (codfavorecido),
CONSTRAINT fk_conta_cod FOREIGN KEY (codconta)
REFERENCES Conta (codconta) ON DELETE CASCADE);
Fonte: A autora, 2014.
25
4.2.3. Desenvolvimento e Testes do Sistema
Com o banco de dados criado, foi utilizado o IDE NetBeans 8.0 para a
programação Java. Usando componentes Graphical User Interface (GUI), que já
vem pré-instalados no programa, foram criadas, antes de tudo, as telas do software,
sem programação alguma, para ter uma organização do que fazer, como quais
funções seriam feitas e qual a ordem que seriam feitas. Depois das janelas prontas a
parte de programação e conexão com o banco de dados foi iniciada.
A programação foi dividida em partes, com a parte visual pronta, foram feitas
primeiro as ligações entre a tela principal e os painéis, que permite que a janela
principal seja única, porém diferentes painéis com conteúdo distinto são exibidos
nela dependendo do botão selecionado no menu principal. Então as funcionalidades
do software começaram a serem programadas fazendo conexões ao banco de
dados, para o programa poder criar, excluir e buscar dados. Todas as funções de
cadastrar, de excluir, visualizar, pesquisar e editar foram feitas em uma única etapa,
uma após a outra.
26
5.
RESULTADOS E DISCUSSÕES
Este tópico apresenta o resultado do trabalho, com uma explicação de como
funciona cada tela do programa.
5.1.
Tela principal/ Painel Contas
Figura 8: Painel de exibição das contas
Fonte: A autora, 2014.
A tela principal do programa possui um menu principal, com o qual é possível
escolher qual painel deverá ser apresentado. Isto funciona como um sistema de
guias, cada item do menu muda o conteúdo da janela.
O programa inicia com o painel Contas, ele possui uma tabela, posicionada
no centro da tela, que serve para exibir nomes das contas que estão cadastradas e
a soma dos seus respectivos saldos. Esta tabela é atualizada automaticamente
sempre que a janela é aberta ou quando alguma mudança no banco de dados é
feita.
No lado direito da tela, encontra-se os botões de criação, edição, exclusão e
consulta das informações no banco de dados. Ao clicar no botão Nova Conta, é
27
aberta uma pequena janela sobreposta à principal para o cadastro de uma nova
conta. O botão Editar Conta abre uma janela semelhante à de cadastro de contas,
mas para isto primeiramente deve estar selecionado uma conta na tabela. Com o
botão Excluir Conta, uma janela de confirmação é aberta para ter certeza de que
deseja excluir permanentemente a conta selecionada na tabela do banco de dados.
O botão Detalhes abre uma janela, sobreposta à principal, para exibição das
informações da conta selecionada na tabela.
5.2.
Cadastro de Contas/ Editar Contas
Figura 9: Tela de Cadastro de Contas
Fonte: A autora, 2014.
A janela de Cadastro de Contas possui campos de preenchimento para o
nome, o número da conta e o número da agência bancária, a qual a conta pertence.
Ela também possui duas listas de seleções: uma para a escolha de um banco já
cadastrado; e outra para escolha do tipo de conta que será, Conta Poupança ou
Conta Corrente. A tela Editar Conta é uma janela semelhante a Cadastro de Contas,
mas que ao ser aberta, os campos são preenchidos automaticamente com os dados
que a conta selecionada antes de abrir a janela possui.
28
O botão Cancelar nas duas janelas serve para fechar a tela aberta. Já o
Salvar, em Cadastro de Contas, tem função de adicionar as informações no banco
de dados, enquanto em Editar Contas, tem função de modificar as informações da
conta já cadastrada.
5.3.
Detalhes da conta
Figura 10: Tela de Detalhes da Conta
Fonte: A autora, 2014.
A janela Detalhes da Conta é uma tela estática que apenas exibe os dados da
conta que está selecionada na tabela da janela Contas. Ela faz uma consulta no BD
automaticamente ao abri-la, para que o usuário do programa possa olhar os dados
que inseriu ao cadastrar a conta, já que a tabela só apresenta nome e o saldo.
5.4.
Painel Bancos
O painel Bancos possui uma tabela para exibição de informações cadastradas
dos bancos, como: o nome, o telefone e o site. Ele possui também três botões para
criar, alterar e excluir dados. O botão Novo Banco abre a janela Cadastro de Banco,
onde é possível adicionar novas informações no BD (Banco de Dados). Enquanto o
botão Editar Banco abre uma janela semelhante à de cadastros, porém, preenchida
com os dados do banco que estiver selecionado na tabela de Bancos para
modificação. O botão Excluir Conta pede uma confirmação para excluir do registro o
banco que estiver selecionado na tabela.
29
Figura 11: Painel de exibição dos Bancos
Fonte: A autora, 2014.
5.5.
Cadastro de Banco/ Editar Bancos
Figura 12: Tela de Cadastro de Banco
Fonte: A autora, 2014.
A janela Cadastro de Banco possui três campos, um para escrever o nome,
um para escrever o site e outro para escrever o telefone do banco a ser cadastrado.
Os campos Site e Telefone não são obrigatórios para o cadastramento do banco. A
30
janela Editar Banco é semelhante à de cadastro, porém ela já é preenchida ao abrir
com os dados do banco que estiver selecionado na tabela em Bancos.
O botão Cancelar, das duas janelas, fecha a janela aberta. Já o botão Salvar,
na janela de cadastro, adiciona o novo Banco no banco de dados, enquanto que na
janela de edição, modifica e/ou adiciona novos dados do Banco aos que já estiverem
cadastrados.
5.6.
Painel Categorias
Figura 13: Painel de exibição de Categorias para transações
Fonte: A autora, 2014.
O painel Categorias possui uma tabela que lista os nomes das categorias
cadastradas. Ele possui também os botões: Nova Categoria, Editar Categoria e
Excluir Categoria. O botão Nova Categoria abre uma janela para o cadastro de uma
nova categoria. Os botões de editar e excluir necessitam que alguma categoria
esteja selecionada na tabela, pois será esta categoria selecionada que receberá
modificação; no caso do botão excluir, será o registro que pedirá confirmação para
exclusão, e no caso do botão editar, será o registro que preencherá o campo da
janela.
31
5.7.
Cadastro de Categorias/ Editar Categoria
Figura 14: Tela de Cadastro de Categoria
Fonte: A autora, 2014.
A janela Cadastro de Categoria possui apenas um campo, pois somente o
nome é preciso. A tela Editar Categoria é semelhante à de cadastro porém quando é
aberta, ela é carregada automaticamente com o nome que está selecionado na
tabela do painel Categorias. O botão Cancelar fecha a janela aberta, e o Salvar
adiciona ou modifica o dado no banco de dados, dependendo de qual das duas está
aberta.
5.8.
Painel Favorecidos
O Favorecido é a pessoa ou empresa que está relacionada a transação
bancária. Pode ser uma pessoa com quem foi gasto ou quem forneceu o dinheiro.
No caso de uma empresa pode ser um supermercado ou uma clínica médica em
que é gasto com alimentos e consultas.
O painel Favorecidos (apresentado na Figura 17) possui uma tabela de leitura
que exibe os favorecidos cadastrados no BD, com seus respectivos telefone e e-mail
de contato. Ele também possui botões ao lado direito da tela, onde é possível
cadastrar novos favorecidos, atualizar e excluir registros mais antigos. O botão Novo
Favorecido e Editar Favorecido abrem, respectivamente, uma janela sobreposta a
primeira para o cadastro ou edição de um registro. O botão Excluir Favorecido abre
uma
janela
de
confirmação,
para
então
excluir
o
favorecido
do
BD
permanentemente. Os botões Editar e Excluir são habilitados somente se houver
algum favorecido selecionado na tabela.
32
Figura 15: Painel de exibição dos favorecidos
Fonte: A autora, 2014.
5.9.
Cadastrar Favorecidos/Editar Favorecidos
Figura 16: Tela de Cadastro de Favorecido
Fonte: A autora, 2014.
A janela Cadastro de Favorecido (apresentado pela Figura 18) tem três
campos: Nome, Telefone (para registrar um contato de ligação para transações) e E-
33
mail. Os campos para o telefone e e-mail não são obrigatórios, somente o nome
precisa estar preenchido para que o registro possa ser feito. A tela também possui
dois botões: Cancelar para fechar a janela, e Salvar que efetua o registro no BD.
A janela Editar Favorecido é semelhante a de cadastro, porém, ao abrir é
preenchida automaticamente com os dados do favorecido que estiver selecionado
na tabela do Painel Favorecidos. O botão Salvar, nesta janela, atualiza no BD, o
dado que foi editado no campo. O botão Cancelar possui a mesma função do seu
equivalente da janela de cadastro.
5.10. Painel Movimentações
O painel Movimentações possui em seu interior uma tabela, que exibe todas
as movimentações registradas para uma determinada conta selecionada, com os
respectivos dados: o número da movimentação, que é gerado automaticamente pelo
banco de dados ao cadastrá-la, a data em que foi registrada, categoria, favorecido, o
tipo de movimentação e o valor da transação. A tabela deste painel difere das outras
tabelas do programa por ter como filtro uma lista de seleção com o nome das
contas, assim, a tabela exibe somente as movimentações da conta selecionada.
Abaixo da tabela é exibido o saldo total das transações que estão na tabela, este
saldo é atualizado toda vez que uma modificação for feita no banco, ou seja, um
novo registro ou a exclusão de um antigo, ela também muda de acordo com a conta
selecionada na lista selecionável.
O painel ainda possui botões que possibilitam alterações no banco, como:
criar, alterar e excluir uma transação. O botão Nova Movimentação abre a janela de
mesmo nome, para a criação de um novo registro de transação. O botão Editar
Movimentação abre a janela de mesmo nome, permitindo que algo possa ser
alterado em uma movimentação cadastrada. O botão Excluir abre uma caixa de
diálogo que pede confirmação para excluir um registro. Para que os botões Editar e
Excluir funcionem, uma movimentação deve estar selecionada na tabela.
34
Figura 17: Painel de exibição das Movimentações financeiras
Fonte: A autora, 2014.
5.11. Nova Movimentação/ Editar Movimentação
A janela Nova Movimentação é uma das telas mais importantes para este
programa, que tem por objetivo registrar movimentações feitas em determinada
conta. Para que este registro possa ser feito, a tela possui: campo de data formatado
com as barras, para que somente números sejam colocados, campo para o valor da
transação, listas de seleção de contas, favorecidos e categorias, e possui também
botões de seleção Retirada e Depósito, para marcar se o dinheiro está sendo
retirado ou colocado na conta. Se o botão Retirada estiver selecionado o número
inserido no campo valor será convertido e armazenado no Banco de Dados como
negativo. O botão Cancelar fecha a janela e o botão Salvar adiciona o registro ao
banco de dados.
A janela Editar Movimentação é semelhante à tela de cadastro, porém quando
é aberta todos os campos estão preenchidos com o que foi cadastrado
anteriormente. Todos os campos são obrigatórios, portanto, ao clicar em Salvar,
35
tanto na janela de Cadastro como na janela Editar, ele informará qual campo não
está preenchido, para só então modificar ou criar o registro.
Figura 18: Tela de Cadastro de Movimentação
Fonte: A autora, 2014.
5.12. Painel Relatório de Movimentações
Figura 19: Painel de exibição de Relatórios de movimentações das contas
Fonte: A autora, 2014.
36
O painel Relatório tem por objetivo a visualização das movimentações
registradas, todas juntas ou filtradas por uma característica em comum, em uma
tabela. Ele também exibe, abaixo da tabela, o saldo total das transações
apresentadas na tabela, que se atualiza sempre que um filtro é utilizado. Os filtros
são compostos por um campo de data, para buscar por movimentações feitas no
mesmo dia, e pelas listas de seleção: Conta, Categoria e Favorecido. Os botões OK
fazem uma busca no banco de dados, de acordo com o campo ou a lista que está ao
seu lado.
6.
CONSIDERAÇOES FINAIS
Este trabalho permitiu o levantamento de requisitos, que foi feito com o
orientador, a criação de um banco de dados, que foi modelado e depois
implementado, e o desenvolvimento de um programa que realizasse o cadastro de
contas, de movimentações feitas nestas contas e as exibisse num relatório que
pudesse utilizar filtros. O programa final realiza o cadastro também de categorias,
favorecido e banco que são informações importantes para o cadastro da conta e das
movimentações. O relatório pode utilizar quatro filtros diferentes e exibir um saldo.
As maiores dificuldades do trabalho foram: o tempo, alguns problemas
técnicos como travamentos e complicações com o uso do editor de texto e outros
programas utilizados, e também o fato de ter sido feito por uma única pessoa, que
não possuía muitos conhecimentos no assunto, o que resultou em um programa
simples. Como trabalhos futuros, sugere-se: complementar o software com um login
com senha, para dar mais segurança às informações, uma função que importe
arquivos de extrato de banco para o programa, trocar o banco de dados por
armazenamento em arquivos, para que não seja necessário ter um Sistema
Gerenciador de Banco de Dados (SGBD) instalado, e que os relatórios possam ser
agrupados por categoria ao invés de filtrados.
37
REFERÊNCIAS
ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. Fundamentos da programação de
computadores: Algoritmos, Pascal, C/C++ e Java. 2ª ed. São Paulo: Pearson
Prentice Hall, 2007.
DEITEL, Harvey M; DEITEL, Paul J. Java como programar. 8. ed. São Paulo:
Pearson Prentice Hall, 2010.
DATE, C. J. Introdução a sistemas de bancos de dados. 8. ed. Rio de Janeiro:
Elservier, 2004.
HEUSER, Carlos A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman,
2009.
ANGELOTTI, Elaini S. Banco de Dados. Curitiba: Livro Técnico, 2010.
SOMMERVILLE, Iam. Engenharia de software. 9. ed. São Paulo: Pearson Prentice
Hall, 2011.
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 2.
ed. Rio de Janeiro: Elsevier, Campus, 2007.
IDE Recursos do Netbeans. Disponível em:
<https://netbeans.org/features/index.html>. Acessado em 17 de dezembro de 2014.
XAVIER, Andressa. MySQL Workbench. Disponível em:
<http://www.baixaki.com.br/download/mysql-workbench.htm>. Acessado em: 17 de
dezembro de 2014.
MARTINS, Elaine. brModelo. Disponível em:
<http://www.baixaki.com.br/download/brmodelo.htm>. Acessado em: 17 de
dezembro de 2014.
Download