centro estadual de educação tecnológica paula souza

Propaganda
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
ISABELA DA SILVA BARBOZA
LARAISA DA SILVA BARBOZA
SISTEMA DE INFORMAÇÃO WEB PARA GERENCIAMENTO
COMERCIAL APLICADO AO RAMO DE CONFECÇÕES
LINS/SP
2º SEMESTRE/2014
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
ISABELA DA SILVA BARBOZA
LARAISA DA SILVA BARBOZA
SISTEMA DE INFORMAÇÃO WEB PARA GERENCIAMENTO
COMERCIAL APLICADO AO RAMO DE CONFECÇÕES
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnólogo (a) em Banco de Dados.
Orientador: Prof. Me. Anderson Pazin
LINS/SP
2° SEMESTRE/2014
ISABELA DA SILVA BARBOZA
LARAISA DA SILVA BARBOZA
SISTEMA DE INFORMAÇÃO WEB PARA GERENCIAMENTO COMERCIAL
APLICADO AO RAMO DE CONFECÇÕES
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins “Prof. Antonio
Seabra”, como parte dos requisitos necessários
para a obtenção do título de Tecnólogo em Banco
de Dados sob orientação do Prof. Me. Anderson
Pazin
Data de aprovação: 02 de Dezembro de 2014
________________________________________
Orientador: Prof. Me. Anderson Pazin
________________________________________
Prof. Me. Mário Henrique de Souza Pardo
________________________________________
Prof. Me. Marcel Santos Silva
Dedico este trabalho a Deus, cuja misericórdia e
graça sempre estiveram presentes em minha vida,
e à minha família que não mediram esforços para
que eu pudesse completar mais essa jornada.
Isabela da Silva Barboza
Dedico este trabalho a Deus, por sempre me
iluminar e guiar pelo caminho certo, aos meus pais
Reginaldo e Sônia e meus irmãos Isabela e
Fabiano, que sempre estiveram me apoiando e
incentivando, assim como ao meu namorado
Thiago pelo companheirismo e paciência durante
todo o tempo da minha formação.
Laraisa da Silva Barboza
AGRADECIMENTOS
Primeiramente agradeço a Deus por me ajudar em todos os momentos de
dificuldade e nunca ter me abandonado.
Agradeço aos meus pais Reginaldo e Sônia e meus irmãos Fabiano e Laraisa
por me apoiarem e incentivarem incondicionalmente durante todo o tempo da minha
formação, a eles devo tudo que sou hoje.
Meu sincero agradecimento ao meu orientador Prof. Me. Anderson Pazin pela
paciência e orientação dada que tornaram possível a conclusão deste trabalho, a
Prof. Me. Luciane Noronha do Amaral pelos seus conselhos e correções e aos
demais professores que estiveram presentes nessa caminhada.
Aos meus colegas do NIT que me ajudaram quando precisei e a todos que
direta ou indiretamente colaboraram na minha formação, o meu muito obrigada.
Isabela da Silva Barboza
AGRADECIMENTOS
Agradeço em primeiro lugar a Deus por sempre me iluminar e por ter me dado
saúde e força para superar as dificuldades.
Aos familiares, meus pais Reginaldo e Sônia que não mediram esforços para
que eu chegasse até esta etapa de minha vida, meu irmão Fabiano pela amizade e
atenção quando precisei e minha irmã e parceira de grupo Isabela, pela cooperação
e companheirismo, que me auxiliou no desenvolvimento deste trabalho.
Ao meu namorado Thiago pelo amor, carinho, apoio, incentivo e paciência
durante todo tempo de minha formação.
Aos meus colegas Jeison, Lucas e Ricardo por terem me ajudado quando
precisei.
Agradeço também a todos os professores pelo aprendizado que me
proporcionaram, em especial ao meu orientador Prof. Me. Anderson Pazin pelas
suas orientações que tornaram possível a conclusão desta monografia e a Prof. Me.
Luciane Noronha do Amaral pelas dicas e correções ortográficas.
À Fatec Lins por ter me proporcionado esta oportunidade valiosa.
A todos que direta ou indiretamente participaram da minha formação, o meu
muito obrigada.
Laraisa da Silva Barboza
RESUMO
A informação é um dos principais motores da atividade humana e, sendo assim,
independentemente do porte, atividade ou natureza de uma empresa, é inegável que
há necessidade cada vez maior de informações para que possam prosseguir e
alcançar os objetivos a que se propõem. Partindo deste princípio, sistemas de
informação surgem como uma forma de garantir que todo fluxo de uma empresa no
que diz respeito às informações, seja organizado em um sistema informatizado, com
o intuito de auxiliar na automatização dos processos e tomada de decisões, para
que se concretizem as intenções da empresa em ações. Sendo assim, este trabalho
propõe o desenvolvimento de um sistema de informação web para o gerenciamento
da empresa denominada Amanda Modas, cujo objetivo é o de proporcionar agilidade
e controle eficaz em todos os seus processos de gestão, tais como entradas e
saídas de produtos, relatórios, cadastros, controle de estoque e consultas. Para que
fosse possível desenvolver o sistema, foram utilizados os frameworks Java Server
Faces (JSF), PrimeFaces e Hibernate, além do banco de dados MySQL e a
linguagem de programação Java, para mais também foram realizadas entrevistas
com a proprietária da empresa a fim de levantar os requisitos necessários, como
também pesquisas sobre as bases tecnológicas aplicadas para o desenvolvimento
da aplicação.
Palavras Chave: Sistema web. Java. JSF. PrimeFaces. Hibernate. MySQL.
ABSTRACT
Information is one of the main drivers of human activity and, as such, regardless of
size, activity or nature of a company, it is undeniable that there is increasing need for
information so they can pursue and achieve the goals proposed. On this basis,
information systems arise as a way to ensure that all flow of a company with regard
to information is organized in a computerized system, with the help of order in the
automation of processes and decision-making, in order to fulfilling the company's
intentions into actions. Thus, this work proposes the development of a web
information system for the management of the company named Amanda Fashions,
whose goal is to provide agility and effective control in all management processes,
such as inputs and outgoing products, reports , registers, inventory control and
consultations. To make it possible to develop the system, Java Server Faces
frameworks (JSF) were used, PrimeFaces and Hibernate in addition to the MySQL
database and the Java programming language, for more interviews were also held
with the owner of the company in order to raise the necessary requirements, as well
as research on the technological bases used for developing the application.
Keywords: Web system. Java. JSF. PrimeFaces. Hibernate. MySQL.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Exemplo de uma tabela com suas respectivas tuplas e atributos ......... 19
Figura 2.1 – Diagrama de caso de uso...................................................................... 32
Figura 2.2 – Diagrama de classe............................................................................... 33
Figura 2.3 – Diagrama de atividade efetuar login ...................................................... 34
Figura 2.4 – Diagrama MVC efetuar login ................................................................. 34
Figura 2.5 – Diagrama de sequência efetuar login .................................................... 35
Figura 2.6 – Diagrama de atividade salvar funcionário ............................................. 35
Figura 2.7 – Diagrama de atividade editar funcionário .............................................. 36
Figura 2.8 – Diagrama de atividade excluir funcionário............................................. 36
Figura 2.9 – Diagrama de atividade visualizar detalhes do funcionário..................... 37
Figura 2.10 – Diagrama MVC manter funcionário ..................................................... 37
Figura 2.11 – Diagrama de sequência manter funcionário ........................................ 38
Figura 2.12 – Diagrama de atividade de entrada de produtos................................... 41
Figura 2.13 – Diagrama MVC de entrada de produtos .............................................. 42
Figura 2.14 – Diagrama de sequência de entrada de produtos................................. 42
Figura 2.15 – Diagrama de atividade de vendas ....................................................... 43
Figura 2.16 – Diagrama MVC de vendas .................................................................. 44
Figura 2.17 – Diagrama de sequência de vendas ..................................................... 44
Figura 2.18 – Diagrama de atividade de troca de produtos ....................................... 45
Figura 2.19 – Diagrama MVC de troca de produtos .................................................. 46
Figura 2.20 – Diagrama de sequência de troca de produtos ..................................... 46
Figura 2.21 – Diagrama de atividade de parcela ....................................................... 47
Figura 2.22 – Diagrama MVC de parcela .................................................................. 47
Figura 2.23 – Diagrama de sequência de parcela ..................................................... 48
Figura 2.24 – Diagrama de atividade gerar relatórios ............................................... 48
Figura 2.25 – Diagrama MVC gerar relatórios ........................................................... 49
Figura 2.26 – Diagrama de sequência gerar relatórios ............................................. 49
Figura 3.1 – Tela de login .......................................................................................... 51
Figura 3.2 – Tela principal ......................................................................................... 52
Figura 3.3 – Tela de listagem de funcionários ........................................................... 52
Figura 3.4 – Tela de cadastro de funcionário ............................................................ 53
Figura 3.5 – Tela de entrada de produtos ................................................................. 56
Figura 3.6 – Tela de entrada de produtos com a exibição de uma das mensagens . 56
Figura 3.7 – Tela de venda........................................................................................ 57
Figura 3.8 – Tela de venda com a exibição de uma das mensagens ........................ 57
Figura 3.9 – Tela de forma de pagamento a vista ..................................................... 58
Figura 3.10 – Tela de forma de pagamento a prazo ................................................. 58
Figura 3.11 – Tela de receber parcelas ..................................................................... 59
Figura 3.12 – Tela de troca de produtos.................................................................... 60
Figura 3.13 – Tela de troca de produtos com a exibição de uma das mensagens.... 61
Figura 3.14 – Tela relatório de contas a receber ....................................................... 62
Figura 3.15 – Relatório de contas a receber ............................................................. 62
Figura B.1 – Exemplo do componente calendar........................................................ 72
Figura B.2 – Exemplo do componente inputMask ..................................................... 72
Figura B.3 – Exemplo do componente inputText ....................................................... 72
Figura B.4 – Exemplo do componente inputTextarea ............................................... 73
Figura B.5 – Exemplo do componente outputLabel................................................... 73
Figura B.6 – Exemplo do componente password ...................................................... 73
Figura B.7 – Exemplo do componente selectOneMenu ............................................ 73
Figura B.8 – Exemplo do componente selectOneRadio ............................................ 74
Figura B.9 – Exemplo do componente commandButton ........................................... 74
Figura B.10 – Exemplo do componente growl ........................................................... 74
Figura B.11 – Exemplo do componente graphicImage.............................................. 74
Figura B.12 – Exemplo do componente dataTable ................................................... 75
Figura B.13 – Exemplo do componente separator .................................................... 75
Figura B.14 – Exemplo do componente fieldset ........................................................ 76
Figura B.15 – Exemplo do componente menubar ..................................................... 76
Figura B.16 – Exemplo dos componentes menu, submenu e menuitem................... 77
Figura B.17 – Exemplo dos componentes tabView e tab .......................................... 77
Figura B.18 – Exemplo dos componentes confirm e confirmDialog .......................... 78
Figura B.19 – Exemplo do componente dialog .......................................................... 78
LISTA DE ABREVIATURAS E SIGLAS
API – Application Programming Interface
CASE – Computer Aided Software Engineering
CSS – Cascading Style Sheets
DAO – Data Access Object
GUI – Graphical User Interface
HTML – HyperText Markup Language
IDE – Integrated Development Environment
JDBC – Java Database Connectivity
JEE – Java Enterprise Edition
JME – Java Micro Edition
JPA – Java Persistence API
JSE – Java Standard Edition
JSF – Java Server Faces
JSP – Java Server Pages
MVC – Model View Controller
ORM – Object-Relational Mapping
PDF – Portable Document Format
SGBD – Sistema Gerenciador de Banco de dados
SI – Sistema de Informação
SQL – Structured Query Language
UML – Unified Modeling Language
W3C – World Wide Web Consortium
SUMÁRIO
INTRODUÇÃO ......................................................................................... 15
1 FUNDAMENTAÇÃO TEÓRICA ............................................................ 17
1.2 MODELO DE SISTEMA ...................................................................................... 17
1.3 ORIENTAÇÃO A OBJETOS................................................................................ 18
1.4 MODELO RELACIONAL ..................................................................................... 19
1.5 TECNOLOGIAS UTILIZADAS ............................................................................. 20
1.5.1 UML .................................................................................................................. 20
1.5.2 NetBeans.......................................................................................................... 20
1.5.3 Java .................................................................................................................. 21
1.5.4 HTML................................................................................................................ 22
1.5.5 CSS .................................................................................................................. 23
1.5.6 JSF ................................................................................................................... 24
1.5.7 PrimeFaces ...................................................................................................... 25
1.5.8 Apache Tomcat ................................................................................................ 25
1.5.9 MySQL ............................................................................................................. 26
1.5.10 JDBC .............................................................................................................. 26
1.5.11 Hibernate ........................................................................................................ 27
1.5.12 iReport e JasperReport .................................................................................. 28
1.6 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 29
2 ANÁLISE E PROJETO DO SISTEMA .................................................. 30
2.1 DESCRIÇÃO DO AMBIENTE ATUAL ................................................................. 30
2.2 INSTRUÇÃO DO PROBLEMA ............................................................................ 31
2.3 ATORES E ENVOLVIDOS NO PROCESSO ...................................................... 31
2.4 PERSPECTIVA DO PRODUTO .......................................................................... 31
2.5 DIAGRAMAS ....................................................................................................... 32
2.5.1 Diagrama de Caso de Uso ............................................................................... 32
2.5.2 Diagrama de Classe ......................................................................................... 33
2.5.3 Efetuar Login .................................................................................................... 34
2.5.4 Manter Funcionário........................................................................................... 35
2.5.5 Manter Cliente .................................................................................................. 38
2.5.6 Manter Fornecedor ........................................................................................... 38
2.5.7 Manter Dependente .......................................................................................... 39
2.5.8 Manter Produto................................................................................................. 39
2.5.9 Manter Fabricante ............................................................................................ 39
2.5.10 Manter Tipo de Produto .................................................................................. 40
2.5.11 Manter Cidade ................................................................................................ 40
2.5.12 Manter Despesa ............................................................................................. 40
2.5.13 Efetuar Entrada de Produtos .......................................................................... 41
2.5.14 Efetuar Venda ................................................................................................ 43
2.5.15 Efetuar Troca de Produtos ............................................................................. 45
2.5.16 Parcela ........................................................................................................... 47
2.5.17 Gerar Relatórios ............................................................................................. 48
2.6 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 49
3 IMPLEMENTAÇÃO ............................................................................... 51
3.1 DESENVOLVIMENTO DO SISTEMA.................................................................. 51
3.1.1 Tela de Login .................................................................................................... 51
3.1.2 Tela Principal .................................................................................................... 51
3.1.3 Tela de Funcionário .......................................................................................... 52
3.1.4 Tela de Cliente ................................................................................................. 53
3.1.5 Tela de Fornecedor .......................................................................................... 54
3.1.6 Tela de Dependente ......................................................................................... 54
3.1.7 Tela de Produto ................................................................................................ 54
3.1.8 Tela de Fabricante............................................................................................ 54
3.1.9 Tela de Tipo de Produto ................................................................................... 54
3.1.10 Tela de Cidade ............................................................................................... 55
3.1.11 Tela de Despesa ............................................................................................ 55
3.1.12 Tela de Entrada de Produtos.......................................................................... 55
3.1.13 Tela de Venda ................................................................................................ 56
3.1.14 Tela Receber Parcela ..................................................................................... 59
2.1.15 Tela de Troca de Produtos ............................................................................. 59
2.1.16 Relatórios ....................................................................................................... 61
3.2 CONSIDERAÇÕES SOBRE O CAPÍTULO ......................................................... 63
CONCLUSÃO .......................................................................................... 64
REFERÊNCIAS BIBLIOGRÁFICAS ........................................................ 65
APÊNDICE A – Entrevista Realizada na Empresa Amanda Modas ....... 69
APÊNDICE B – Componentes do PrimeFaces Utilizados ...................... 72
15
INTRODUÇÃO
De acordo com Serviço Brasileiro de Apoio às Micro e Pequenas Empresas –
SEBRAE (2006), antes de abrir as portas para os clientes, a empresa precisa tomar
decisões certeiras para a obtenção do sucesso. Sendo assim, para a consolidação
do êxito comercial, torna-se essencial a realização de pesquisas de mercado e da
formulação de um plano de negócio, o qual conterá análises de mercado,
tecnologias a serem utilizadas e diversas características mercadológicas e
financeiras. Logo, baseando-se neste contexto, acredita-se que um Sistema de
Informação (SI) implantado de acordo com a necessidade de cada empresa
proporcione mais segurança, agilidade e organização em suas atividades cotidianas.
Segundo Laudon e Laudon (2011), SI tecnicamente fornecem diversos
elementos destinados a auxiliar na tomada de decisões, a administrar e a controlar
uma empresa. Além de dar apoio, os SI são utilizados para auxiliar os gerentes e
trabalhadores para resolução de problemas e criação de novos produtos e serviços,
assim como também possuem informações sobre pessoas, locais e itens
significativos que ajudam a organização no seu ambiente de atuação.
Com base nestas observações, o principal objetivo deste trabalho é
desenvolver um SI para ajudar no gerenciamento da empresa denominada Amanda
Modas e que atua no comércio de roupas masculinas, femininas, infantis e
acessórios.
Para o desenvolvimento do software será utilizada a ferramenta Integrated
Development Environment (IDE) NetBeans, a linguagem de programação Java,
HyperText Markup Language (HTML), Cascading Style Sheets (CSS), JSF,
PrimeFaces, o servidor Tomcat, o banco de dados MySQL, o driver Java Database
Connectivity (JDBC), Hibernate, iReport, JasperReport, e por fim a Unified Modeling
Language (UML) que é um padrão para modelagem, o qual será usado para
modelar o sistema.
A questão problema, parte do princípio de que a empresa trabalha de forma
manual para realizar suas atividades, o qual torna o controle precário, sem dados
exatos e gera certa demora na hora de executar suas tarefas, devido à falta de
informações, como por exemplo, entrada e saída de produtos, fechamento de
estoque, emissão de relatórios e gerenciamento de cadastro dos clientes.
16
Diante disso, este trabalho justifica-se no desenvolvimento do sistema de
informação web para gerenciamento comercial, aplicado ao ramo de confecções, o
qual fornecerá diversos tipos de cadastros, consultas, movimentação que ocorrem
como entradas e saídas de produtos e emissão de relatórios, para agilizar e facilitar
os serviços da empresa.
Metodologicamente, este trabalho adotou entrevistas com a proprietária da
empresa (essa entrevista encontra-se no apêndice A) para a coleta de algumas
informações necessárias para a construção do sistema, juntamente com o
levantamento bibliográfico de todas as ferramentas, tecnologias e assuntos
abordados.
O trabalho está organizado em três capítulos. O primeiro capítulo tem como
proposta
explanar
as
bases
conceituais
e
tecnológicas,
por
meio
da
contextualização de elementos fundamentais como o paradigma de programação
orientada a objetos, modelo de sistema e modelo relacional, assim como as
tecnologias aplicadas para o desenvolvimento do software.
No segundo capítulo, são descritas as etapas de modelagem do sistema por
meio de diagramas com o fim de especificar os principais requisitos.
Por fim, no terceiro capítulo, são apresentadas as telas do sistema, assim
como os resultados da aplicação web.
17
1 FUNDAMENTAÇÃO TEÓRICA
Este primeiro capítulo visa propor uma explanação dos pilares conceituais
abordados neste trabalho, através da contextualização de elementos fundamentais
como o conceito de modelagem de sistemas, para mais, busca salientar o
paradigma de orientação a objetos, por meio da sintetização de elementos oriundos
desta visão de programação como, por exemplo, classes, objetos, encapsulamento,
assim como, o conceito de herança.
Por fim, este capítulo tem como objetivo elucidar o conceito de modelo
relacional e expor os elementos que o compõem, bem como explanar sobre as
tecnologias e ferramentas utilizadas para o desenvolvimento do sistema de
informação web proposto neste trabalho monográfico.
1.2 MODELO DE SISTEMA
Segundo Silva e Videira (2001), um modelo é a interpretação da abstração de
fragmentos do mundo real, sobre os quais as etapas de modelagem e criação do
sistema incidem, conforme uma determinada estrutura de conceitos, ou seja, é uma
interpretação sintetizada da realidade.
Silva e Videira (2001) ressaltam que um modelo de sistema é especificado
por um esquema, o qual utiliza uma linguagem que pode ser informal ou formal
como, por exemplo, linguagem textual, gráfica ou até mesmo natural. Ademais,
quando o esquema é devidamente representado graficamente, é denominado
usualmente por diagrama.
Conforme Sommerville (2003), um modelo de processo de software descreve
de maneira simplificada um processo de software, a partir de uma determinada
perspectiva, ou seja, um modelo de sistema é a abstração do processo real e visa
destacar o papel das pessoas que participam da engenharia de software.
Um modelo mostra apenas um cenário de um fragmento da realidade, sendo
assim, faz-se necessário a criação de diversos modelos para melhor representar e
entender o sistema em questão. (SILVA; VIDEIRA, 2001)
De acordo com Sommerville (2003), a modelagem de um sistema dá-se a
partir de métodos e técnicas estruturados, cujo foco é facilitar o desenvolvimento e a
18
produção de um software de alta qualidade, o qual resulta em uma boa relação
custo-benefício. Outrossim, o autor ainda salienta que os métodos e técnicas de
modelagem de software procura identificar os componentes funcionais básicos de
um sistema a ser desenvolvido, bem como incluir diversificada gama de
componentes.
Sommerville (2003) afirma que os métodos e técnicas de modelagem de
aplicações foram inicialmente utilizados a partir da década de 70, e visava uma
análise estruturada, como também, a metodologia de engenharia de software
orientada a objetos, cuja aurora deu-se nas décadas de 80 e 90 e eram mais
apropriados para sistemas interativos. Além disso, o autor ressalta que as diferentes
vertentes
metodológicas
foram
posteriormente
integradas
em
uma
única
aglomeração de componentes, mais conhecida como Unified Modeling Language
(UML).
1.3 ORIENTAÇÃO A OBJETOS
O paradigma de orientação a objetos é baseado em uma série de técnicas, a
fim de estruturar soluções para problemas computacionais, surgiu com o intuito de
minimizar a complexidade do desenvolvimento de softwares tornando-os mais
produtivos. (COELHO, 2012)
Seguidamente, serão apresentados alguns dos principais termos que a
orientação a objetos trabalha.
 Classe – Segundo Deitel e Deitel (2010), uma classe é o projeto do objeto,
ou seja, ela representa o tipo de objeto construído a partir dela, além disso,
uma classe pode conter atributos (estado e características de um objeto),
assim como, um ou mais métodos que são construídos para executar
tarefas da classe.
 Objeto – Conforme Coelho (2012), objeto é a instância de uma classe, o
qual possuirá todas as características dela, como
por
exemplo,
comportamentos que esse objeto pode executar. Para mais, Deitel e Deitel
(2010) explicam que cada objeto mantém seus próprios atributos, porém
não tem conhecimento dos atributos de outros objetos.
 Encapsulamento – De acordo com Coelho (2012), encapsulamento é um
conceito aplicado para proteger atributos de um objeto de forma que
19
ninguém possa configurá-lo com um valor inapropriado, ou seja, encapsular
significa que nem todas as características do objeto precisam estar
publicamente
visíveis
e
acessíveis,
pois
há
elementos
que
são
convenientes apenas para o próprio objeto.
 Herança – Para Deitel e Deitel (2010), herança é a criação de uma nova
classe (chamada de subclasse) que herda características de uma classe
específica (chamada de superclasse). Essa subclasse pode conter seus
próprios atributos e métodos, além disso, a herança reduz o tempo de
desenvolvimento do programa pelo fato de permitir a reutilização de
códigos.
1.4 MODELO RELACIONAL
Apresentado por Edgar Codd no ano 1970, o modelo relacional foi proposto
para representar de uma maneira mais simples os dados, por meio de um conjunto
de tabelas (também denominadas relações) inter-relacionadas, o qual cada tabela é
composta por tuplas (linhas) e atributos (colunas), além de possuir um nome único
para sua identificação. (CORREIA, 2014)
A figura 1.1 ilustra de forma simples, uma tabela com suas respectivas linhas
e colunas.
Relação Livro
Atributos
Tuplas
Código
Título
Ano de publicação
1
Java para Web
2010
2
Web Design
2011
3
Banco de Dados
2010
4
Algoritmos
2005
5
Sistema de Informação
2008
Figura 1.1 – Exemplo de uma tabela com suas respectivas tuplas e atributos
Fonte: Elaborado pelas autoras, 2014
20
1.5 TECNOLOGIAS UTILIZADAS
1.5.1 UML
A Unified Modeling Language (UML) teve seu surgimento no ano 1997, com o
objetivo de especificar, construir, visualizar e documentar softwares por meio da
aplicabilidade de diagramas. Ademais, UML não depende de linguagens de
programação, assim como também de uma ferramenta Computer Aided Software
Engineering (CASE), o qual são programas para auxiliar engenheiros de software,
com o intuito de minimizar o esforço e a complexidade, para melhorar o
gerenciamento do projeto. (SILVA; VIDEIRA, 2001)
Silva e Videira (2001) ressaltam que dependendo do projeto que será
desenvolvido, da ferramenta de suporte que será utilizada ou da organização que
será abrangida, é mantida a utilização da mesma linguagem de modelação.
A modelagem dos diagramas UML neste trabalho monográfico será elaborada
com o auxílio do Astah Community, que segundo o site Astah (2014), é uma
ferramenta gratuita que tem como propósito desenvolver diagramas UML de uma
maneira mais simples, prático e ágil.
1.5.2 NetBeans
Para Araújo (2011), o simples fato de um desenvolvedor dominar uma
linguagem de programação, já não é mais o suficiente para que o trabalho seja
produzido com eficácia, e partindo deste princípio considera-se de suma importância
fazer a interconexão dos conhecimentos da linguagem com um ambiente integrado
de desenvolvimento, cujo um dos principais é a ferramenta Integrated Development
Environment (IDE) NetBeans.
Segundo
Gonçalves
(2006),
o
NetBeans
é
open-source
escrito
completamente em Java, cujo projeto foi fundado em junho de 2000 pela Sun
Microsystems e, pelo fato de evoluir constantemente torna-se competitiva, frente as
melhores ferramentas de desenvolvimento Java, e permite que desenvolvedores
possam criar plugins, integrar-se com banco de dados, bem como escrever, compilar
e debugar códigos em diversas linguagens de programação.
21
De acordo com Araújo (2011), a Sun Microsystems foi comprada pela Oracle
em 2009, que mesmo com a aquisição, manteve o NetBeans como um projeto de
código aberto até os dias atuais.
Conforme Gonçalves (2006), o NetBeans atrai desenvolvedores do mundo
todo, fato que se deve a evolução rápida de cada versão que provém das altas
exigências de produtividade.
1.5.3 Java
Java é uma poderosa linguagem de programação orientada a objetos, foi
desenvolvida em 1991 pela Sun Microsystems, e permite implementar aplicativos
baseados na Internet, desenvolver aplicativos corporativos de grande porte,
melhorar a funcionalidade de servidores, como também desenvolver software para
dispositivos que se comunicam em rede, para mais, o Java consolida-se cada vez
mais entre as linguagens de maior popularidade para o desenvolvimento de
sistemas. (DEITEL; DEITEL, 2010)
Segundo Gonçalves (2006), o Java é portável, ou seja, executa em diferentes
sistemas operacionais, além disso, o Java é utilizado em diversas vertentes como,
por exemplo, em grandes bancos, devido à segurança otimizada, bem como em
grandes empresas que anseiam em trafegar por maciças coleções de dados.
Outrossim, o Java pode ser encontrado em telefonia móvel, sistema de cartão de
crédito, banco de dados relacionais, etc.
Batra (2013) ressalta que o Java é devidamente compilado com a
especificação Java Virtual Machine bytecode, o que permite que um programa Java
seja executado em qualquer arquitetura ou sistema operacional, além de que, o Java
utiliza uma sintaxe no estilo C/C++, a qual é amplamente usada e facilita a
reutilização de códigos para programadores da linguagem em questão.
De acordo com Niemeyer e Leuck (2013), inicialmente a linguagem de
programação Java gerou enorme expectativa devido ao fato de que parte das suas
capacidades permitia a construção de aplicações embarcadas na web, ou seja,
aplicativos executados no contexto de outro programa que são mais conhecidos
como applets. Além disso, os autores ressaltam que os applets eram limitados e a
popularização do Java deu-se através do Java Swing, que consiste em conjuntos de
ferramentas mais sofisticadas para a produção de interfaces gráficas de usuário.
22
Conforme Niemeyer e Leuck (2013), o Java tornou-se, em uma visão geral, a
principal plataforma para serviços web e para sistemas que podem ser operados de
qualquer lugar e a qualquer hora, chamadas de aplicações baseadas na web. Para
mais, os autores salientam que a interconexão entre servidores em Java com
plataformas Linux de código aberto são o âmago do mundo empresarial e financeiro
atual e partindo deste princípio pode-se afirmar que o Java é a linguagem mais
escolhida para aplicações de negócios modernos.
Segundo Deitel e Deitel (2010), o Java possui três arquiteturas principais,
sendo:
 Java Standard Edition (JSE) – Permite desenvolver e implementar
aplicativos em desktop e servidores;
 Java Enterprise Edition (JEE) – Possibilita o desenvolvimento de aplicativos
web e aplicativos distribuídos em rede em larga escala;
 Java Micro Edition (JME) – Adequada para o desenvolvimento de
aplicativos para dispositivos com pouca capacidade de memória, como por
exemplo, celulares, pagers, entre outros.
1.5.4 HTML
Quando a web surgiu, tornou-se imprescindível a distribuição da informação
de uma forma simples, todavia organizada, portanto fez-se necessária a criação de
uma linguagem que fosse compreendida universalmente através de variados meios
de acesso, e o Hyper Text Markup Language (HTML) vislumbra a ser esta
linguagem. (EIS; FERREIRA, 2012)
Segundo Eis e Ferreira (2012), o HTML foi desenvolvido por Tim Berners-Lee,
e se baseia no conceito de hipertexto, que são conjuntos de elementos ligados por
conexões, os quais podem ser palavras, imagens, vídeos, documentos, entre outros,
que conectados formam uma grande rede de informação a fim de que as
informações publicadas por meio de código HTML sejam acessíveis para
dispositivos heterogêneos.
De acordo com Silva (2012), o HTML foi criado para ser uma linguagem de
marcação e estruturação de conteúdos, ou seja, não deve ser função do HTML a
parte visual de um documento como, por exemplo, tamanho de fontes, cores de
textos, posicionamento dos elementos, etc.
23
1.5.5 CSS
Grannell (2007) ressalta que os arquivos HTML eram desnecessariamente
grandes, o que por sua vez resultou em problemas como a incompatibilidade com
diversos navegadores, e com base nesta visão, os web designers passaram a
aplicar estilos em componentes individuais, fato este resultou em um processo
demorado, que com o passar do tempo tornou-se de suma importância a criação de
uma linguagem que trabalhasse em conjunto com o HTML de maneira a customizar
o conteúdo de um documento, tal linguagem foi denominada de Cascading Style
Sheet (CSS).
Ainda conforme Grannell (2007), o CSS é o padrão World Wide Web
Consortium (W3C) responsável por definir a estilização para páginas web, e tem
como objetivo separar a apresentação visual do projeto de conteúdo conhecido
como HTML, ademais, as folhas de estilo foram concebidas com o intuito de serem
aplicadas a elementos individuais através de elementos denominados seletores,
bem como ser uma linguagem de apoio e decoração da linguagem de marcação
estrutural.
Para Silva (2012), CSS tem como finalidade prover todas as funções de
exibição de um documento, por meio da adição de estilos aos documentos web
como, por exemplo, espaçamentos, cores, fontes, entre outros, ou seja, o CSS é
responsável por tratar a parte visual de um documento tornando-o com um design
atraente para o usuário.
De acordo com Lie (2005), o CSS descreve todo o layout de documentos,
bem como introduz novas características e funcionalidades para resolver as
diferenças impostas pela web, como por exemplo, a renderização em diversos
navegadores, além de que, os conceitos utilizados no CSS permitem que tanto
autores dos estilos como os usuários tenham influencia sobre a apresentação do
documento.
Lie (2005) explana que todo processo de resolução de conflitos, bem como a
união de várias folhas de estilos é conhecido como cascata, e com base neste
princípio é possível afirmar que o CSS é atualmente utilizado em todos os principais
navegadores e a maioria dos desenvolvedores web usam esta linguagem que é
desde o advento da web, um conceito chave para a publicação de sites tanto
estáticos como dinâmicos.
24
1.5.6 JSF
Segundo Paganini (2010), o framework Java Server Faces (JSF) é um
conjunto de soluções que visam potencializar a produtividade na criação e
implementação de aplicações web, e devem permitir a conversão e validação de
dados, integração com o banco de dados ou outra forma de persistência,
mecanismos de segurança, localização, internacionalização, suporte a CSS,
acessibilidade, manipulação de templates, bem como muitas outras funcionalidades,
as quais tornam as tarefas dos desenvolvedores mais simplificadas.
Silva e Foschini (2012) ressaltam que o JSF permite criar aplicações web
através de componentes de interface chamados Graphical User Interface (GUI), e
traz em suas funcionalidades o melhor dos universos desktop e web, fato que resulta
na criação e implementação de uma interface com menor grau de complexidade e
mais rica através do uso de bibliotecas de componentes que manipulam e
gerenciam o controle de eventos, validação dos dados, bem como armazena os
componentes automaticamente, para mais, pode-se afirmar que o JSF possibilita,
por exemplo, a interação com os dispositivos denominados clientes, além de
fornecer ferramentas para a apresentação visual.
Para Faria (2013), uma característica marcante na arquitetura do JSF é a
separação que é feita entre as camadas de apresentação, pois ele baseia-se no
padrão de projetos Model View Controller (MVC), o qual facilita o desenvolvimento
de aplicações. Outrossim, pode-se afirmar que o padrão MVC divide o sistema em
três responsabilidades, denominadas modelo, visão e controle, onde o modelo é
responsável por encapsular os dados e as funcionalidades da aplicação, a visão é
responsável pela exibição de informações, cujos dados são obtidos do modelo e o
controlador recebe as requisições do usuário e aciona o modelo e/ou a visão, além
de possuir uma camada de visualização devidamente separada do conjunto das
classes de modelo.
De acordo com Faria (2013), o gerenciamento do JSF é realizado através de
uma servlet denominada Faces Servlet, a qual tem a opção de ser controlada por
arquivos XML de configuração e por outros manipuladores de ações, como também,
por observadores de evento, além de que, possui a função de redirecionar todas as
requisições que recebe dos usuários na web para o modelo, para enfim enviar uma
resposta.
25
1.5.7 PrimeFaces
Para Boekel (2011), o framework PrimeFaces disponibiliza um conjunto de
componentes bem elaborados para o JSF, sendo que seus elementos possuem o
objetivo de facilitar o esforço da tarefa do desenvolvedor, pois o PrimeFaces foi
construído para trabalhar com Ajax, e assim não à necessidade de realizar
chamadas assíncronas ao servidor, além disso, este framework oferece suporte à
criação de funcionalidades que utilizam o Ajax Push, que é um mecanismo que
possibilita ao servidor enviar dados para um browser do cliente sem que aja a
necessidade de que o cliente faça uma requisição explicitamente, além de permitir a
aplicação de temas, com o simples objetivo de alterar o visual dos componentes de
forma mais fácil e rápida.
A biblioteca PrimeFaces é uma das implementações mais completas do JSF e
oferecem componentes mais atraentes e completos do que suas concorrentes, além
de ser a biblioteca mais popular entre os desenvolvedores, pois está em constante
evolução. (BRIGATTO, 2012)
1.5.8 Apache Tomcat
Para Brittain e Darwin (2008), um servidor web é um programa fora das
páginas web e tem como objetivo enviar respostas às solicitações de usuários
realizadas em um navegador web, e com base nestas informações, pode-se afirmar
que o Tomcat é um servidor web criado pela empresa Apache Software Foundation.
Conforme o site Devmedia (2007), o Tomcat é um servidor cujas
funcionalidades permitem que as aplicações web sejam executadas, e sua principal
característica está concentrada na linguagem de programação Java, mais
precisamente nas tecnologias Servlets e Java Server Pages (JSP), além disso, a
organização Apache permite no caso do seu servidor em questão, que o Tomcat
seja usado livremente para diversos fins.
Brittain e Darwin (2008) ressaltam que um dos aspectos mais interessantes
do Tomcat é permitir que as solicitações feitas pelo usuário sejam respondidas tanto
em páginas estáticas como dinâmicas, ademais pode-se dizer que o Tomcat é uma
ótima escolha para servidor web de aplicações, pois seu uso resulta em uma
produção de alta performance.
26
1.5.9 MySQL
Um sistema gerenciador de banco de dados (SGBD) é um conjunto de
programas que possibilita aos usuários manter e criar uma base de dados, ou seja,
pode-se dizer que o SGBD é um sistema de software de abrangência geral que visa
facilitar diversos processos do banco de dados, como por exemplo, definição,
manipulação, construção e compartilhamento de dados entre usuários e aplicações.
(ELMASRI; NAVATHE, 2005)
Segundo Gonçalves (2006), MySQL é um SGBD relacional que possui
características como agilidade, confiabilidade e facilidade de uso, além de ser de
código aberto, multiplataformas e nível corporativo, o MySQL é vagamente baseado
em outro SGBD denominado mSQL.
De acordo com DuBois (2009), o MySQL faz uso do Structured Query
Language (SQL), que é uma linguagem de banco de dados padronizada que oferece
suporte a diversos tipos de declarações, e tem como principal objetivo possibilitar a
interação com a base de dados de maneira eficiente.
1.5.10 JDBC
Uma das tecnologias mais importantes para um sistema de informação é o
banco de dados relacional, que proporciona a criação de grandes aplicativos, o que
por sua vez resulta em uma vasta quantidade de informações, tendo em vista este
princípio faz-se necessário a interconexão entre uma linguagem de programação e o
paradigma de modelagem em questão através de uma Application Programming
Interface (API) denominada Java Database Connectivity (JDBC). (GONÇALVES,
2006)
Conforme Gonçalves (2006), o JDBC é uma API introduzida dentro da
linguagem Java para possibilitar o acesso ao banco de dados, e consiste em um
conjunto de classes e interfaces para a programação com o banco de dados.
Segundo Palmeira (2013) faz-se necessário um driver para realizar a conexão
entre uma aplicação e um SGBD, e geralmente esses drivers são disponibilizados
pelas empresas de SGBDs que seguem a especificação do JDBC, além de que o
driver pode ser considerado um tradutor que auxilia na definição das mensagens
binárias trocadas com um protocolo de um SGBD.
27
De acordo com Lozano (2008), o JDBC pode facilmente se comunicar com
qualquer banco relacional, como também pode se submeter a comandos SQL, bem
como recuperar os resultados gerados pela execução desses comandos, além de
permitir o acesso aos metadados, também conhecidos como catálogo, o qual
possibilita a construção de ferramentas para a administração do próprio banco e
apóia o desenvolvimento do sistema, além de que, as primeiras versões dessa API
sempre foram completas e atendem plenamente as necessidades da maioria das
aplicações, além disso, a compatibilidade retroativa foi preservada ao contrário de
outras APIs.
Gonçalves (2006) salienta que o JDBC possui a vantagem de ser
multiplataforma, pois foi desenvolvido especialmente para o acesso ao banco de
dados através do Java, que se tornou sua linguagem nativa, sendo assim, não há
necessidade de escrever um programa para cada tipo de banco, além de poder ser
utilizado com diferentes tipos de SGBDs como Oracle, Sybase, SQLServer, MySQL,
Firebird, PostgreSQL entre outros.
1.5.11 Hibernate
De acordo com Gonçalves (2007), a persistência de dados foi por muitos anos
um problema entre os desenvolvedores Java, pois de um lado tinham-se
informações armazenadas em tabelas, e de outro a apresentação dessas
informações em formato de objetos, ou seja, uma incompatibilidade de paradigmas,
portanto, tornou-se necessária a criação de ferramentas de mapeamento com
acesso às bases de dados, a fim de simplificar as classes Data Access Object
(DAOs) desenvolvidas, para mais, dentre os mapeadores de bancos de dados com
maior destaque no mercado, está o Hibernate.
Segundo Antonio e Ferro (2009), o Hibernate é um framework de alto
desempenho para persistência de dados e permite ao programador desenvolver a
camada de persistência com base no paradigma de orientação a objetos, incluindo
os conceitos de herança, polimorfismo, collections, entre outros, além do mais o
Hibernate trabalha com o conceito de modelo relacional e também serviços de
consulta denominada query.
Gonçalves (2007) ressalta que o Hibernate é um framework que se relaciona
com a base de dados, e essa relação é denominada como mapeamento
28
objeto/relacional, ou seja, o Hibernate é facilmente integrado com uma determinada
aplicação, e se comunica com o banco de dados como se tal ação fosse feita pela
própria aplicação, além disso, qualquer mudança de banco de dados não se torna
dispendiosa, pois basta alterar apenas um ou outro detalhe nas configurações do
Hibernate.
Conforme Saab (2011), o Hibernate surgiu para ser uma ponte entre o
paradigma de orientação a objetos e a persistência de dados em bases relacionais,
e pode ser utilizado como um framework independente ou mesmo implementar
especificações Java Persistence API (JPA), que trabalha com o conceito de
anotações para o mapeamento de classes em tabelas.
Para Araújo e Guizzo (2012), o Hibernate utiliza o conceito de ObjectRelational Mapping (ORM), que propõe a transformação de objetos e classes em
tuplas e tabelas de forma invisível, assim ao invés do desenvolvedor ter que
implementar todas as instruções SQL para as consultas e operações na base de
dados, ele pode fazer uso de um framework que permita fazer essas operações de
forma transparente sem deixar o paradigma de orientação a objetos, portanto toda
codificação necessária para manter contato com o banco de dados se resume a
algumas poucas configurações no framework.
1.5.12 iReport e JasperReport
De acordo com Lopes (2011), o iReport pode ser definido como um IDE
aplicado no desenvolvimento de layouts para relatórios, para mais, pode-se dizer
que é neste ambiente de desenvolvimento que é feita a conexão com a base de
dados e a definição de quais colunas vão ser visíveis no relatório, assim como a
geração de um arquivo .jrxml que posteriormente será lido pelo JasperReport.
Lopes (2011) ressalta que o JasperReport é uma API, ou seja, uma classe
Java que faz a comunicação com o layout-relatório gerado no iReport, assim o
usuário não tem a percepção de que algo foi feito fora do Java, pois a aplicação gera
os relatórios em um único ambiente, outrossim, o JasperReport é responsável
apenas por setar o layout .jrxml do iReport e na sequência é definido pelo
desenvolvedor o tipo de relatório que será exportado, como por exemplo arquivos
Portable Document Format (PDF), HTML, TEXT, eXtensible Markup Language
(XML), entre outros.
29
Conforme Filho (2011), o iReport permite a elaboração de relatórios com
maiores recursos gráficos sem utilizar o código XML diretamente, como também
oferece atalhos para visualizar e compilar um relatório, bem como utilizar os
recursos do JasperReport, que realizarão a compilação do arquivo .jrxml gerado pelo
iReport para um arquivo .jasper, que será utilizado por objetos JasperReports para
geração de relatórios como por exemplo, o JasperPrint, para enviar o relatório para
impressão e o JasperViewer, para visualização do relatório.
1.6 CONSIDERAÇÕES SOBRE O CAPÍTULO
Este capítulo enfatizou sobre os conceitos de modelo relacional, orientação a
objetos e modelo de sistema, como também explanou sobre os pilares tecnológicos
utilizados neste trabalho monográfico como UML, NetBeans, Java, HTML, CSS, JSF,
PrimeFaces, Tomcat, MySQL, JDBC, Hibernate, iReport, JasperReport, assim como
sintetizou os aspectos mais importantes condizentes a cada um. Para mais, pode-se
dizer que a integração entre as tecnologias abordadas neste capítulo, visam formar
o sistema de informação proposto nesta monografia.
30
2 ANÁLISE E PROJETO DO SISTEMA
Este segundo capítulo tem como objetivo descrever as etapas de modelagem
do sistema, composta por caso de uso, diagrama de classe, diagramas de
atividades, diagramas MVC e por fim os diagramas de sequência.
2.1 DESCRIÇÃO DO AMBIENTE ATUAL
Amanda Modas é uma empresa que está no mercado há quase dez anos,
localizada na cidade de Tarumã, na Avenida Tarumã no número 397, Centro. A
empresa atua no ramo de comercialização de roupas masculinas, femininas e
infantis, além de acessórios.
Atualmente,
o
gerenciamento
da
empresa
Amanda
Modas,
não
é
informatizado, ou seja, todas as atividades que envolvem processos de
gerenciamento ainda são realizadas de forma manual por meio de fichas cadastrais,
cadernos e notas promissórias.
A estrutura atual da empresa trabalha da seguinte forma, o cliente
devidamente cadastrado por fichas, obtém a opção de dividir o pagamento de sua
compra em, no máximo, quatro prestações, situação que atualmente é controlada
via notas promissórias a serem pagas nos dias mensais determinados, contudo o
não pagamento de alguma porção da compra resulta em cobrança feita por telefone
por parte da proprietária, como também, no caso de atrasos que ultrapassam o
prazo de 60 dias, a proprietária submete o atraso aos devidos órgãos de cobrança
SPC/Serasa, mediante a intervenção de advogado.
Cabe à proprietária e a todos os funcionários da loja, o controle dos
pagamentos das notas promissórias, que é realizado através de um caderno de
anotações que contém o nome dos clientes, as datas de vencimento, além do valor
da nota a ser paga, neste processo específico cada vez que um cliente faz a
quitação de sua promissória em dia, o funcionário em questão risca o registro atual e
dá como paga a parcela, caso contrário, a situação é repassada para a proprietária
que executa a devida cobrança.
As atividades de saída de produtos também são realizadas manualmente por
todos os funcionários da loja, que após cada venda efetuada anotam em um
caderno específico o produto vendido, data, quantidade e o valor total da venda.
31
Em suma, pode-se dizer que a forma como as atividades são realizadas
atualmente tornam-se exaustivas e de difícil controle, além de correr riscos com a
perda de dados e informações que podem acarretar em prejuízo para a loja e seus
colaboradores.
2.2 INSTRUÇÃO DO PROBLEMA
Atualmente as atividades realizadas pela empresa Amanda Modas são feitas
manualmente por meio de fichas e cadernos, o que torna o controle precário sem
dados exatos, além de gerar certa demora para executar suas tarefas, e partindo
deste princípio, o desenvolvimento de um simples sistema que agregue todas essas
funções irá otimizar o controle e abrandar o serviço da proprietária e seus
funcionários.
2.3 ATORES E ENVOLVIDOS NO PROCESSO
A proprietária é responsável por manter todas as informações necessárias,
como contas a receber, a entrada de produtos, efetuar venda, efetuar troca de
produtos, controlar o estoque, emitir relatórios, manter os cadastros como, produtos,
funcionários, clientes, fornecedores, dependentes, cidades, fabricantes, tipos de
produtos e despesas, ou seja, por toda a manipulação do sistema.
O funcionário é responsável pelos mesmos serviços da proprietária citados
acima, exceto manter funcionário, fabricante, tipo de produto, produto, despesa, a
entrada de produtos e gerar relatório de fechamento por período.
2.4 PERSPECTIVA DO PRODUTO
O sistema desenvolvido tem como finalidade auxiliar a empresa a minimizar
seus problemas, ou seja, buscar melhorar a organização e otimizar o controle de
suas atividades, bem como agilizar e facilitar seus serviços através de soluções que
afetam todos seus processos de gerenciamento, o que por sua vez culminará na
centralização dos dados e informações de tal forma que, os usuários da aplicação
em questão possam acessá-la de maneira eficiente.
32
2.5 DIAGRAMAS
Neste tópico serão apresentados os diagramas de caso de uso, diagrama de
classe, diagrama de atividade, diagrama MVC e por fim diagrama de sequência.
2.5.1 Diagrama de Caso de Uso
Figura 2.1 – Diagrama de caso de uso
Fonte: Elaborado pelas autoras, 2014
33
2.5.2 Diagrama de Classe
Figura 2.2 – Diagrama de classe
Fonte: Elaborado pelas autoras, 2014
34
2.5.3 Efetuar Login
Nesta funcionalidade, o usuário que realizar o login deve inserir os dados
necessários no qual o sistema verifica se estes são ou não verdadeiros.
As figuras 2.3, 2.4 e 2.5 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.3 – Diagrama de atividade efetuar login
Fonte: Elaborado pelas autoras, 2014
Figura 2.4 – Diagrama MVC efetuar login
Fonte: Elaborado pelas autoras, 2014
35
Figura 2.5 – Diagrama de sequência efetuar login
Fonte: Elaborado pelas autoras, 2014
2.5.4 Manter Funcionário
Nesta funcionalidade, a proprietária realiza o cadastro do funcionário. Os
dados necessários para a efetivação do cadastro são: nome, RG, CPF, tipo de
funcionário, usuário e senha que devem ter preenchimento obrigatório, assim como
data de nascimento, rua, número, bairro, CEP, cidade, salário, e-mail, telefone,
celular e observação que devem ter preenchimento opcional. Cabe ressaltar que
após o registro ser inserido na base de dados, a proprietária poderá visualizar
detalhes, editar ou excluir o registro.
As figuras 2.6, 2.7. 2.8, 2.9, 2.10 e 2.11 representam respectivamente os
diagramas de atividade, MVC e sequência desta funcionalidade.
Figura 2.6 – Diagrama de atividade salvar funcionário
Fonte: Elaborado pelas autoras, 2014
36
Figura 2.7 – Diagrama de atividade editar funcionário
Fonte: Elaborado pelas autoras, 2014
Figura 2.8 – Diagrama de atividade excluir funcionário
Fonte: Elaborado pelas autoras, 2014
37
Figura 2.9 – Diagrama de atividade visualizar detalhes do
funcionário
Fonte: Elaborado pelas autoras, 2014
Figura 2.10 – Diagrama MVC manter funcionário
Fonte: Elaborado pelas autoras, 2014
38
Figura 2.11 – Diagrama de sequência manter funcionário
Fonte: Elaborado pelas autoras, 2014
2.5.5 Manter Cliente
Nesta funcionalidade, a proprietária ou funcionário efetua o cadastro de
cliente. Os dados requeridos para a confirmação do cadastro são: nome, RG, CPF,
data de nascimento, rua, número, bairro e cidade que devem possuir preenchimento
obrigatório, como também CEP, e-mail, telefone, celular e observação que devem
possuir preenchimento opcional. Após o registro ser inserido no banco de dados, a
proprietária ou funcionário poderá visualizar detalhes, editar ou excluir o registro.
Os diagramas desta funcionalidade não serão apresentados, pois são
semelhantes aos diagramas representados na seção 2.5.4 Manter Funcionário.
2.5.6 Manter Fornecedor
Nesta funcionalidade, a proprietária ou funcionário realiza o cadastro do
fornecedor. Os dados necessários para a realização do cadastro são: fornecedor,
CNPJ, rua, número, bairro e cidade que devem conter preenchimento obrigatório,
além de CEP, telefone, e-mail e observação que devem conter preenchimento
opcional. Posteriormente à inserção dos registros na base de dados, a proprietária
ou funcionário poderá visualizar detalhes, editar ou excluir o registro.
39
Os diagramas desta funcionalidade serão suprimidos, pois são similares aos
diagramas ilustrados no tópico 2.5.4 Manter Funcionário.
2.5.7 Manter Dependente
Nesta funcionalidade, a proprietária ou funcionário efetua o cadastro de
dependente. Os dados necessários para a efetivação do cadastro são: nome, data
de nascimento, RG e cliente responsável pelo dependente, que devem possuir
preenchimento obrigatório. Depois da inserção dos registros no banco de dados, a
proprietária ou funcionário poderá visualizar detalhes, editar ou excluir o registro.
Os diagramas desta funcionalidade serão omitidos, devido à verossimilhança
com os diagramas exibidos na seção 2.5.4 Manter Funcionário, exceto que nesta
funcionalidade a proprietária ou funcionário deve selecionar o cliente que
corresponde ao respectivo dependente ao invés de cidade.
2.5.8 Manter Produto
Nesta funcionalidade, a proprietária deve realizar o cadastro dos produtos. Os
dados necessários para a confirmação do cadastro são: descrição do produto, tipo
do produto, fabricante, gênero, sessão e tamanho que devem ter preenchimento
obrigatório, bem como, estoque, preço de custo e preço de venda, os quais são
inseridos pela proprietária na tela de “Entrada de produtos”, que será explanada no
tópico 2.5.13 Efetuar Entrada de produtos. Na sequência, o produto será inserido na
base de dados, e a proprietária poderá visualizar detalhes, editar ou excluir o
registro.
Os diagramas desta funcionalidade não serão ilustrados, devido à
semelhança com os diagramas apresentados no tópico 2.5.4 Manter Funcionário,
exceto que nesta funcionalidade a proprietária deve selecionar o tipo de produto e o
fabricante que corresponde ao respectivo produto ao invés de cidade.
2.5.9 Manter Fabricante
Nesta funcionalidade, a proprietária efetua o cadastro de fabricante. Os dados
necessários para a realização do cadastro são: fabricante, o qual deve ter
preenchimento obrigatório, e site que deve ter preenchimento opcional. Na
40
sequência o fabricante será inserido no banco de dados, e a proprietária poderá
editar ou excluir o registro.
Os diagramas desta funcionalidade não serão exibidos, devido à similaridade
com os diagramas ilustrados na seção 2.5.4 Manter Funcionário.
2.5.10 Manter Tipo de Produto
Nesta funcionalidade, a proprietária realiza o cadastro do tipo de produto. Os
dados necessários para a efetivação do cadastro são: tipo de produto, que deve
possuir preenchimento obrigatório. Posteriormente à inserção dos registros no banco
de dados, a proprietária poderá editar ou excluir o registro.
Os diagramas desta funcionalidade serão suprimidos, pois são semelhantes
aos diagramas representados no tópico 2.5.4 Manter Funcionário.
2.5.11 Manter Cidade
Nesta funcionalidade, a proprietária ou funcionário deve realizar o cadastro de
cidades. Os dados necessários para a confirmação do cadastro são: nome e UF que
devem conter preenchimento obrigatório. Após o registro ser inserido na base de
dados, a proprietária ou funcionário poderá editar ou excluir o registro.
Os diagramas desta funcionalidade serão omitidos, devido à verossimilhança
com os diagramas representados na seção 2.5.4 Manter Funcionário.
2.5.12 Manter Despesa
Nesta funcionalidade, a proprietária insere as despesas na base de dados. Os
dados necessários para a realização do cadastro são: despesa referente, data a
pagar, valor da despesa, e se a despesa já está paga, os quais devem ter
preenchimento obrigatório, assim como, à data de pagamento da despesa e
observação, que devem ter preenchimento opcional. Insta ressaltar que, após a
despesa ser inserida no banco de dados, a proprietária poderá editar ou excluir o
registro.
Os diagramas desta funcionalidade não serão apresentados, pois são
semelhantes aos diagramas representados no tópico 2.5.4 Manter Funcionário.
41
2.5.13 Efetuar Entrada de Produtos
Nesta funcionalidade, a proprietária deve primeiramente selecionar o
fornecedor e os produtos, logo após será efetuada a somatória dos valores dos
produtos que irão compor a entrada de produtos, para em seguida efetivar o registro
e atualizar o estoque. Os dados necessários para a efetivação da entrada de
produtos são: data de entrada, fornecedor, número da nota, produto, quantidade a
comprar, preço de custo do produto, preço de venda do produto e o total da entrada
de produtos, que devem ter preenchimento obrigatório.
As figuras 2.12, 2.13 e 2.14 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.12 – Diagrama de atividade de entrada de produtos
Fonte: Elaborado pelas autoras, 2014
42
Figura 2.13 – Diagrama MVC de entrada de produtos
Fonte: Elaborado pelas autoras, 2014
Figura 2.14 – Diagrama de sequência de entrada de produtos
Fonte: Elaborado pelas autoras, 2014
43
2.5.14 Efetuar Venda
Nesta funcionalidade, a proprietária ou funcionário deve primeiramente
selecionar o cliente e os produtos requeridos pelo cliente, ademais, após a
somatória dos valores dos produtos que irão compor a venda, o cliente deverá
escolher a forma de pagamento, com as opções a vista e a prazo, caso for à vista, a
venda é registrada e o estoque é atualizado, caso for a prazo, a venda é efetuada, o
que resulta na geração das parcelas do cliente e atualização do estoque.
Os dados necessários para a efetivação da venda são: data da venda,
funcionário que realizou a venda, cliente, produto, quantidade a comprar, qual a
forma de pagamento, se a venda teve desconto, o subtotal da venda e o total da
venda, os quais devem possuir preenchimento obrigatório.
As figuras 2.15, 2.16 e 2,17 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.15 – Diagrama de atividade de vendas
Fonte: Elaborado pelas autoras, 2014
44
Figura 2.16 – Diagrama MVC de vendas
Fonte: Elaborado pelas autoras, 2014
Figura 2.17 – Diagrama de sequência de vendas
Fonte: Elaborado pelas autoras, 2014
45
2.5.15 Efetuar Troca de Produtos
Nesta funcionalidade, a proprietária ou funcionário deve primeiramente
selecionar a venda e os produtos referentes à venda, para então adicionar em uma
lista de produtos extornados, posteriormente, deve selecionar os produtos e
adicionar em uma lista de produtos trocados. Logo após será efetuada a somatória
dos valores adicionados entre as duas listas para obter o valor parcial da troca, para
em seguida efetivar a troca e atualizar o estoque.
Os dados necessários para a efetivação da troca de produtos são: data da
troca, código da venda, produtos da venda selecionada, quantidade, tipo (extornado
ou trocado) e valor da troca, os quais devem possuir preenchimento obrigatório.
As figuras 2.18, 2.19 e 2.20 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.18 – Diagrama de atividade de troca de produtos
Fonte: Elaborado pelas autoras, 2014
46
Figura 2.19 – Diagrama MVC de troca de produtos
Fonte: Elaborado pelas autoras, 2014
Figura 2.20 – Diagrama de sequência de troca de produtos
Fonte: Elaborado pelas autoras, 2014
47
2.5.16 Parcela
Nesta funcionalidade, a proprietária ou funcionário primeiramente deve
selecionar o cliente e verificar se este possui contas a pagar, caso sim, realiza o
pagamento e a quitação da parcela, caso contrário, finaliza a parcela. Os dados
necessários para a efetivação da parcela são: código da venda, valor da parcela,
vencimento da parcela e se a parcela está paga, que devem ter preenchimento
obrigatório, além de, data de pagamento, que deve ter preenchimento opcional.
As figuras 2.21, 2.22 e 2.23 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.21 – Diagrama de atividade de parcela
Fonte: Elaborado pelas autoras, 2014
Figura 2.22 – Diagrama MVC de parcela
Fonte: Elaborado pelas autoras, 2014
48
Figura 2.23 – Diagrama de sequência de parcela
Fonte: Elaborado pelas autoras, 2014
2.5.17 Gerar Relatórios
Nesta funcionalidade, a proprietária ou funcionário deve visualizar ou imprimir
o relatório.
As figuras 2.24, 2.25 e 2.26 representam respectivamente os diagramas de
atividade, MVC e sequência desta funcionalidade.
Figura 2.24 – Diagrama de atividade gerar relatórios
Fonte: Elaborado pelas autoras, 2014
49
Figura 2.25 – Diagrama MVC gerar relatórios
Fonte: Elaborado pelas autoras, 2014
Figura 2.26 – Diagrama de sequência gerar relatórios
Fonte: Elaborado pelas autoras, 2014
2.6 CONSIDERAÇÕES SOBRE O CAPÍTULO
Este segundo capítulo teve como principal característica a ilustração e
explanação da modelagem do sistema por meio de diagramas, que representam as
50
funcionalidades do sistema proposto neste trabalho monográfico, para mais, buscouse sintetizar acerca do atual ambiente da empresa alvo do trabalho e apresentou as
principais dificuldades vivenciadas pela proprietária e pelos funcionários em questão.
Em suma, o capítulo visou ressaltar a importância de informatizar os
processos da empresa Amanda Modas, e os benefícios que trará a automatização
de todo gerenciamento, bem como detalhar em cada diagrama os papéis que cada
ator envolvido desempenhará no sistema.
51
3 IMPLEMENTAÇÃO
Este terceiro capítulo tem como objetivo explanar toda a etapa de
desenvolvimento do sistema proposto por meio de ilustrações das telas.
O desenvolvimento do sistema teve como base o padrão de projeto MVC,
juntamente com todas as tecnologias apresentadas no capítulo um, deste trabalho
monográfico.
3.1 DESENVOLVIMENTO DO SISTEMA
3.1.1 Tela de Login
A figura 3.1 representa a tela “Login” do sistema, onde deve-se informar os
respectivos usuário e senha para acessar o sistema, caso as informações sejam
corretas, o acesso será liberado para a tela “Principal”, contudo, se usuário ou senha
estiverem incorretos é exibida uma mensagem que informa que usuário e/ou senha
estão incorretos.
Figura 3.1 – Tela de login
Fonte: Elaborado pelas autoras, 2014
3.1.2 Tela Principal
A figura 3.2 ilustra a tela “Principal” do sistema, a qual apresenta a estrutura
de acesso às demais telas do sistema, por meio de um menu vertical de escolhas
52
divididos em “Cadastro”, “Movimentação”, “Relatório” e “Financeiro”, além de um
menu horizontal que contém opções de “Sair” do sistema, “Informações” e retorno à
tela “Principal”.
Figura 3.2 – Tela principal
Fonte: Elaborado pelas autoras, 2014
3.1.3 Tela de Funcionário
A figura 3.3 representa a tela “Funcionário” do sistema, cujo acesso é
realizado através da opção “Cadastro” no menu vertical da tela “Principal”, e exibe
inicialmente um botão denominado “Novo Funcionário”, bem como uma lista com
todos os funcionários previamente cadastrados. Sendo assim, se a lista for vazia, é
exibida uma mensagem que informa que não há registro(s) de funcionários, contudo
se a lista for apresentada com um ou mais funcionários, é exibida conjuntamente as
opções de “Editar”, “Excluir” e “Visualizar detalhes”.
Figura 3.3 – Tela de listagem de funcionários
Fonte: Elaborado pelas autoras, 2014
53
A opção “Editar” exibe uma tela com os dados do funcionário selecionado
para alteração, a opção “Excluir” exibe uma tela de confirmação de exclusão, já a
opção “Visualizar detalhes” exibe uma tela que contém todos os dados do
funcionário selecionado.
Por fim, o botão “Novo Funcionário” é responsável por registrar um novo
funcionário a partir de uma estrutura pré-definida de campos e dois botões
chamados “Salvar” e “Cancelar”. Ao clicar em “Salvar” os campos são devidamente
verificados a partir de sua obrigatoriedade, como também a validação de alguns
campos, outrossim, o botão “Cancelar” é responsável por fechar a tela “Cadastro de
Funcionário”.
Figura 3.4 – Tela de cadastro de funcionário
Fonte: Elaborado pelas autoras, 2014
3.1.4 Tela de Cliente
A tela “Cliente” é similar à tela de “Funcionário” representada pelo tópico 3.1.3
Tela de Funcionário, exceto pelos campos relativos ao cliente, portanto não será
realizada representação ilustrativa desta tela.
54
3.1.5 Tela de Fornecedor
Esta tela não será representada por meio de ilustração, dada a sua
similaridade com a tela “Funcionário” explanado na seção 3.1.3 Tela de Funcionário,
contudo, cabe salientar que a tela “Fornecedor” possui os campos respectivos à
fornecedores.
3.1.6 Tela de Dependente
Esta tela não possuirá representação ilustrativa devido à semelhança com a
tela “Funcionário” representada no tópico 3.1.3 Tela de Funcionário, porém, a tela
“Dependente” possui campos referentes a dependentes.
3.1.7 Tela de Produto
A tela “Produto”, não será representada devido à similaridade com a tela
“Funcionário” explanado na seção 3.1.3 Tela de Funcionário, exceto pelos campos
relativos a produto.
3.1.8 Tela de Fabricante
A tela “Fabricante” é similar a tela “Funcionário” explanado na seção 3.1.3
Tela de Funcionário, exceto pelos campos referentes à fabricante e é acessada a
partir de um botão na tela “Produto”. Portanto não será realizada representação
ilustrativa desta tela.
3.1.9 Tela de Tipo de Produto
Esta tela não será representada por meio de ilustração, dada sua similaridade
com a tela “Funcionário” representado no tópico 3.1.3 Tela de Funcionário, contudo
cabe salientar que a tela “Tipo de produto” possui campos relativos a tipo de produto
e é acessada a partir de um botão na tela “Produto.
55
3.1.10 Tela de Cidade
A tela “Cidade” possui campos respectivos á cidade e é acessada a partir de
um botão nas telas “Funcionário”, “Cliente” e “Fornecedor”. Esta tela é similar à tela
de “Funcionário” representada pelo tópico 3.1.3 Tela de Funcionário, portanto não
terá ilustração.
3.1.11 Tela de Despesa
Esta tela não possuirá representação ilustrativa devido à semelhança com a
tela “Funcionário” representado pela seção 3.1.3 Tela de Funcionário, exceto pelos
campos relativos à despesa, como também a forma de listagem inicial, que no caso
de despesas só será exibida quando o usuário digitar uma data inicial e uma data
final.
3.1.12 Tela de Entrada de Produtos
A figura 3.5 e 3.6 ilustra a tela de “Entrada de produtos”, que é acessada por
meio da opção “Movimentação” do menu vertical da tela “Principal”, e proporciona
uma interface com campos relativos ao cadastro de entrada de produtos, bem como
fornece uma lista de fornecedores e uma lista de produtos.
Quando o usuário escolher um produto é exibido paralelamente à quantidade
de estoque desse produto, na sequência o usuário deve informar a quantidade a
comprar, o preço de custo e o preço de venda desse produto e acionar o botão “+”,
logo após é verificada a obrigatoriedade de cada campo, bem como se o usuário
tenha informado uma quantidade a comprar menor ou igual a zero, entre outros,
para enfim adicionar esse produto em “Itens de entrada de produtos”, o qual
disponibiliza as opções “Remover produto”, e “Editar produto”.
Por fim, cabe ressaltar que a interface de “Entrada de produtos” possui dois
botões, o de “Registrar entrada de produtos” e “Cancelar”, caso o usuário optar pela
ação no botão “Registrar entrada de produtos”, a entrada de produtos é armazenada
na base de dados e o estoque de produtos é devidamente atualizado, contudo, se o
usuário escolher a opção “Cancelar”, a entrada de produtos é cancelada.
56
Figura 3.5 – Tela de entrada de produtos
Fonte: Elaborado pelas autoras, 2014
Figura 3.6 – Tela de entrada de produtos com a exibição de uma das mensagens
Fonte: Elaborado pelas autoras, 2014
3.1.13 Tela de Venda
A figura 3.7 e 3.8 representa a tela de “Venda” que é acessada via menu
vertical na opção “Movimentação”, esta tela contém campos respectivos a vendas e
ao ser acessada fornece uma lista de clientes e uma lista de produtos.
57
Á medida que o usuário escolher um produto, é exibido paralelamente à
quantidade de estoque desse produto, sequencialmente, o usuário deve informar à
quantidade que deseja comprar e acionar o botão “+”, logo após, são verificados a
obrigatoriedade de cada campo, bem como se o produto selecionado possui estoque
disponível, entre outros, para enfim adicionar esse produto em “Itens de venda”, o
qual fornece as opções “Remover produto”, e “Editar produto”.
Para mais, a tela de “Venda” possui dois botões denominados “Confirmar
venda” e “Cancelar”. Ao acionar o botão “Cancelar”, o usuário cancela a venda em
questão, todavia, se o usuário optar pelo botão “Confirmar venda”, uma tela
denominada “Forma de Pagamento” é exibida.
Figura 3.7 – Tela de venda
Fonte: Elaborado pelas autoras, 2014
Figura 3.8 – Tela de venda com a exibição de uma das mensagens
Fonte: Elaborado pelas autoras, 2014
58
A tela “Forma de Pagamento” possui opções de pagamento à vista e a prazo,
caso a escolha for por forma de pagamento à vista, serão exibidos os campos
relativos à forma de pagamento à vista, caso contrário, ao optar pela forma de
pagamento a prazo, serão apresentados os campos referentes à forma de
pagamento a prazo.
As figuras 3.9 e 3.10 ilustram as formas de pagamento opcionais ao usuário.
Figura 3.9 – Tela de forma de pagamento a vista
Fonte: Elaborado pelas autoras, 2014
Figura 3.10 – Tela de forma de pagamento a prazo
Fonte: Elaborado pelas autoras, 2014
59
Por fim, a tela “Forma de pagamento” contém dois botões, “Registrar Venda”
e “Cancelar”. Se o usuário acionar o botão “Registrar venda” a venda é armazenada
no banco de dados e paralelamente o estoque de produtos é atualizado, bem como,
o usuário deverá emitir o romaneio ao cliente, se o usuário acionar o botão
“Cancelar”, a tela “Forma de pagamento” é fechada.
3.1.14 Tela Receber Parcela
A Figura 3.11 representa a tela “Receber parcela” que é acessada por meio
da opção “Financeiro”, localizada no menu vertical da tela “Principal” do sistema,
assim como, a tela “Receber parcela” fornece uma lista de clientes, no qual permite
o usuário selecionar um cliente para poder visualizar suas parcelas.
Após a listagem das parcelas, o usuário tem a opção de receber a parcela
que o cliente deseja pagar por meio do botão “Receber parcela”.
Figura 3.11 – Tela de receber parcelas
Fonte: Elaborado pelas autoras, 2014
2.1.15 Tela de Troca de Produtos
A figura 3.12 e 3.13 representa a tela “Troca de Produtos” que é acessada
através da opção “Movimentação” no menu vertical da tela “Principal” e proporciona
uma interface com campos referentes a troca de produtos, bem como fornece uma
lista de vendas e uma outra de produtos.
Á medida que o usuário selecionar uma venda será carregado uma lista de
itens dessa venda, posteriormente, ao selecionar um item da venda é exibida
paralelamente à quantidade em que esse item foi adquirido, na sequência o usuário
60
deve informar a quantidade do item que deseja extornar e acionar o botão “Extornar
produto”, logo após são verificados a obrigatoriedade de cada campo, caso o
usuário tenha informado a quantidade a extornar maior que a quantidade vendida,
entre outros, para enfim adicionar esse item em “Produtos extornados”, o qual
fornece a opção “Remover produto”.
Sequencialmente, o usuário deve selecionar um produto, o qual é exibido
paralelamente à quantidade de estoque desse produto, depois de, o usuário deve
informar à quantidade que deseja adquirir e acionar o botão “Adicionar produto”,
posteriormente será verificado a obrigatoriedade de cada campo, entre outros, para
enfim adicionar esse item em “Produtos trocados”, que fornece a opção “Remover
produto”.
Por fim, o usuário pode optar por acionar dois botões, “Registrar troca de
produtos” ou “Cancelar”, caso a opção seja por “Registrar troca de produtos”, os
dados serão devidamente salvos na base de dados e paralelamente o estoque do
produto é atualizado, contudo, sê o botão “Cancelar” for acionado, a troca é
cancelada.
Figura 3.12 – Tela de troca de produtos
Fonte: Elaborado pelas autoras, 2014
61
Figura 3.13 – Tela de troca de produtos com a exibição de uma das mensagens
Fonte: Elaborado pelas autoras, 2014
2.1.16 Relatórios
O acesso aos relatórios é realizado por meio da opção “Relatório” no menu
vertical da tela “Principal”, e assim, por intermédio do menu “Relatório” o sistema
provê as seguintes opções de relatórios:
 Histórico de produtos;
 Histórico de fornecedores;
 Produtos por fornecedor;
 Vendas;
 Contas a Receber.
Ademais, existe um relatório denominado “Fechamento por período”, que é
acessado através do menu “Financeiro” da tela “Principal”.
Enfim, cabe ressaltar que além de poder acessar os relatórios para
visualização em uma nova aba do navegador, o usuário pode ainda salvar ou
imprimir os relatórios em formato de arquivo PDF. A figura 3.14 e 3.15 representa o
relatório “Contas a Receber”, neste relatório serão exibidas as datas que possuem
parcelas a serem pagas de acordo com a data inicial e a data final que o usuário
digitar, conforme a figura 3.14.
62
Figura 3.14 – Tela relatório de contas a receber
Fonte: Elaborado pelas autoras, 2014
Figura 3.15 – Relatório de contas a receber
Fonte: Elaborado pelas autoras, 2014
63
3.2 CONSIDERAÇÕES SOBRE O CAPÍTULO
O objetivo deste capítulo foi apresentar as funcionalidades do sistema por
meio de ilustrações das principais telas, cabe ressaltar que todos os requisitos
descritos no segundo capítulo foram devidamente implementados.
64
CONCLUSÃO
As organizações da atualidade, com as constantes transformações do mundo
globalizado, estão sendo desafiadas pela força da competição do mercado a buscar
a informatização na organização e administração dos processos, produtos e
serviços.
Diante disto, neste trabalho, foi proposto a criação de um sistema web para o
gerenciamento da empresa Amanda Modas, a fim de minimizar os problemas
encontrados, tais como, demora na hora de executar suas tarefas, perda de
informações, etc.
O que mais dificultou a realização deste trabalho monográfico foi a falta de
experiência em trabalhar com Hibernate, JSF e PrimeFaces e o não conhecimento
das funcionalidades desses frameworks, que tiveram que ser vistas no decorrer do
desenvolvimento, todavia insta salientar que, apesar das dificuldades comumente
encontradas no desenvolvimento de um projeto desse porte, os objetivos do trabalho
foram alcançados, assim, o sistema proposto foi desenvolvido e seu funcionamento
está de acordo com as especificações e requisitos.
Para mais, acredita-se que após a implantação do sistema na empresa em
questão, haverá consequentemente uma otimização no processo de atividades
cotidianas como a diminuição do tempo na realização de consultas, pagamentos,
entrada e saída de produtos e geração de relatórios.
Como trabalhos futuros podem ser inseridas novas funcionalidades como a
implementação de nota fiscal eletrônica, instalação de leitor de código de barras,
bem como conexão com empresas de cartão de crédito, além de que, podem ser
realizadas melhorias no sistema, como por exemplo, a tela de troca de produtos, o
qual será inserido a regra de negócio que o produto só poderá ser trocado no prazo
máximo de 15 dias.
65
REFERÊNCIAS BIBLIOGRÁFICAS
ANTONIO, E.R; FERRO, M. Análise comparativa entre os principais FRAMEWORKS
de desenvolvimento Java. In: CONGRESSO NACIONAL DE AMBIENTES
HIPERMÍDIA PARA APRENDIZAGEM, 4, 2009, Florianópolis.
ARAÚJO, C. O IDE NetBeans – Artigo easy Java Magazine 5. 2011. Disponível
em:<http://www.devmedia.com.br/o-ide-netbeans-artigo-easy-java-magazine5/20460> Acesso em: 23 abr. 2014.
ARAÚJO, E. C; GUIZZO, G. JPA/Hibernate ou NoSQL, qual utilizar? – Revista
Java Magazine 103. 2012. Disponível em: < http://www.devmedia.com.br/jpahibernate-ou-nosql-qual-utilizar-revista-java-magazine-103/24386> Acesso em: 29
jun. 2014.
ASTAH.
Astah
Community.
2014.
Disponível
em:
<http://astah.net/editions/community> Acesso em: 21 abr. 2014.
BATRA, R. Essential Java. 1. ed. Open Publication License, 2013.
BOEKEL, R. V. Por dentro do PrimeFaces 2.2 - Artigo Revista Java Magazine 93.
2011. Disponível em: <http://www.devmedia.com.br/por-dentro-do-primefaces-2-2artigo-revista-java-magazine-93/21651> Acesso em 05 mai. 2014.
BRIGATTO, P. JSF 2 e o PrimeFaces - Revista Java Magazine 108 - Parte 1.
2012.
Disponível
em:
<http://www.devmedia.com.br/jsf-2-e-o-primefaces-revista-
java-magazine-108-parte-1/25958> Acesso em: 02 mai. 2014.
BRITTAIN, J; DARWIN, I. F. Tomcat: The Definitive Guide. 2. ed Sebastopol:
O’Reilly Media, 2008.
COELHO, R. S; Fundamentos básicos de Orientação a Objetos – Revista easy
.Net Magazine 26. 2012. Disponível em: <http://migre.me/mU6kD> Acesso em: 29
abr. 2014.
66
CORREIA, R. C. M. Banco de Dados I Modelo Relacional. 2014. Disponível em:
<https://www.yumpu.com/pt/document/view/13738423/aula-4-modelo-relacional>
Acesso em: 07 abr. 2014.
DEITEL, P; DEITEL, H. Java: como programar. Tradução Edson Furmankiewicz. 8.
ed. São Paulo: Pearson Prentice Hall, 2010.
DEVMEDIA.
Conheça
o
Apache
Tomcat.
2007.
Disponível
em:
<http://www.devmedia.com.br/conheca-o-apache-tomcat/4546> Acesso em: 10 mai.
2014.
DUBOIS, P. MySQL: Developer’s Library. 4. Ed. Pearson Addison Wesley, 2009.
EIS, D; FERREIRA, E. HTML5 e CSS3: com farinha e pimenta. São Paulo:
Tableless, 2012.
ELMASRI, R; NAVATHE, S. B. Sistemas de Banco de Dados. Tradução Marília
Guimarães Pinheiro. et al. 4. ed. São Paulo: Pearson Addison Wesley, 2005.
FARIA, T. Java EE 7 com JSF, PrimeFaces e CDI. AlgaWorks Softwares,
Treinamento e Serviços Ltda, 2013.
FILHO, E.L. Estratégias para o desenvolvimento de relatórios utilizando o
JasperReports com iReport. Jun. 2011.
GONÇALVES, E. Dominando NetBeans. Rio de Janeiro: Ciência Moderna, 2006.
______. Desenvolvendo Aplicações Web com JSP, Servlets, JavaServer Faces,
Hibernate, EJB 3 Persistence e AJAX. Rio de Janeiro: Ciência Moderna, 2007.
GRANNELL, C. The Essential Guide to CSS and HTML Web Design. New York:
2007.
LAUDON, K; LAUDON, J; Sistemas de Informação Gerenciais. Tradução Luciana
do Amaral Teixeira. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
67
LIE, H. W. Cascading Style Sheets. 2005. Tese (Doutorado em Matemática e
Ciências Naturais) – Faculty of Mathematics and Natural Sciences, Oslo.
LOPES, C. Usando o iReport e o JasperReport para gerar um relatório. 2011.
Disponível
em:
<http://imasters.com.br/artigo/22242/banco-de-dados/usando-o-
ireport-e-o-jasperreport-para-gerar-um-relatorio/> Acesso em: 20 jun. 2014.
LOZANO, F. Artigo Java Magazine 41 - JDBC de Ponta a Ponta: Parte 1. 2008.
Disponível
em:
<http://www.devmedia.com.br/artigo-java-magazine-41-jdbc-de-
ponta-a-ponta-parte-1/10187> Acesso em: 20 abr. 2014.
NIEMEYER, P; LEUCK, D. Learning Java. 4. ed. Sebastopol: O’Reilly Media, 2013.
PAGANINI, S. Artigo Java Magazine 78 - JSF 2.0. 2010. Disponível em:
<http://www.devmedia.com.br/artigo-java-magazine-78-jsf-2-0/16559> Acesso em:
17 abr. 2014.
PALMEIRA, T. V. V. Aprendendo Java com JDBC. 2013. Disponível em:
<http://www.devmedia.com.br/aprendendo-java-com-jdbc/29116> Acesso em: 20
abr. 2014.
SAAB, N F. Hibernate Annotations – Artigo Java Magazine 90. 2011. Disponível
em:
<http://www.devmedia.com.br/hibernate-annotations-artigo-java-magazine-
90/20433> Acesso em: 17 jun. 2014.
SEBRAE. Ponto de Partida Para Início de Negócio: Loja de Roupa. 2006.
Disponível em: < http://migre.me/mTVWE > Acesso em: 05 mar. 2014.
SILVA, M. S. CSS3: Desenvolva aplicações web profissionais com uso dos
poderosos recursos de estilização das CSS3. 1. ed. São Paulo: Novatec, 2012.
SILVA, M. A. C; FOSCHINI, I. J. Implementação do padrão façade utilizando o
framework JavaServer Faces: um estudo de caso. 2012. Disponível em: <
http://migre.me/mU6Xm> Acesso em: 27 abr. 2014.
68
SILVA, A. M. R; VIDEIRA, C. A. E. UML: Metodologias e Ferramentas CASE. 1.
ed. Lisboa: Centro Atlântico, 2001.
SOMMERVILLE, I. Engenharia de Software. Tradução André Mauricio de Andrade.
6. ed. São Paulo: Pearson Addison Wesley, 2003.
69
APÊNDICE A – Entrevista Realizada na Empresa Amanda Modas
a) Qual o segmento da empresa Amanda Modas?
A empresa trabalha no ramo de compra e venda de roupas masculinas, femininas,
infantis e acessórios.
b) Quem são as pessoas responsáveis por realizar as atividades da empresa?
Proprietária (gerente) e Funcionários (vendedores).
c) Quais as atividades que os funcionários podem realizar dentro da empresa?
Cadastrar cliente, dependente e fornecedores, assim como realizar vendas e
receber parcelas do cliente.
d) Como são realizados os cadastros?
Todos os cadastros são realizados manualmente por meio de fichas ou cadernos, os
dados necessários para a realização dos cadastros são:

Funcionários: nome, RG, CPF, data de nascimento, endereço completo e
telefone;

Clientes: nome, RG, CPF, data de nascimento, endereço completo e telefone;

Dependentes: para realizar o cadastro do dependente ele precisará de uma
autorização de seu responsável e deve fornecer os seguintes dados, nome,
data de nascimento, RG e o nome do cliente responsável;

Fornecedores: não é realizado o cadastro de fornecedores, pois a proprietária
apenas possui os cartões de apresentação dos fornecedores os quais
possuem seus dados como, nome, CNPJ e telefone;

Produtos: descrição do produto, fornecedor, quantidade, preço de custo,
preço de venda, tamanho, tipo de produto (calça, camiseta, acessórios, etc.) e
o fabricante (marca).
e) Como é controlada a entrada de produtos?
Sempre que um produto chega à empresa é feito um novo cadastro de produto
mesmo se este já foi cadastrado uma vez.
70
f) Como é controlada a venda?
Se a venda for à vista apenas são anotados os produtos que saíram e o preço de
cada um deles em um caderno, como também é anotado o total da venda em outro
caderno para poder saber quanto foi recebido no dia, se a venda for a prazo é
verificado se o cliente possui uma ficha caso possuir é feitas as parcelas em notas
promissórias.
g) Como é feito o controle de pagamento das notas promissórias?
O controle é realizado através de um caderno de anotações que contém o nome dos
clientes, as datas de vencimento, além do valor da nota a ser paga, neste processo
específico cada vez que um cliente faz a quitação de sua promissória em dia, o
funcionário em questão risca o registro atual e dá como paga a parcela, caso
contrário, a situação é repassada para a proprietária que executa a devida cobrança.
h) Qual o problema enfrentado pela empresa por não possuir um sistema de
gerenciamento?
Devido à falta de um sistema de gerenciamento, as atividades realizadas atualmente
dentro da empresa, geram certa demora na hora de sua execução, pois algumas
vezes as informações não são precisas, devido a isso se torna difícil controlar o
estoque, manter os produtos, clientes, entre outras atividades.
i) Qual resultado que se espera com a implantação de um software
gerenciador?
Com a implantação do software gerenciador, espera-se que se tenha maior agilidade
e praticidade nas tarefas cotidianas da empresa em relação aos cadastros, entrada
e saída de produtos, controle de estoque e emissão de relatórios.
j) Funcionalidades do sistema de acordo com as necessidades da empresa:

Login de acesso ao sistema;

Cadastros (funcionários, clientes, dependentes, fornecedores, produtos,
fabricantes, tipos de produtos e cidades);

Entrada e saída de produtos;

Receber parcelas;
71

Consultas

Relatórios (diversos);
72
APÊNDICE B – Componentes do PrimeFaces Utilizados
Calendar: componente de entrada usado para fornecer uma data, bem como
suporta paginação, localização, seleção Ajax, etc.
Figura B.1 – Exemplo do componente calendar
Fonte: Elaborado pelas autoras, 2014
InputMask: componente de entrada que formata um determinado conteúdo no
padrão desejado
Figura B.2 – Exemplo do componente inputMask
Fonte: Elaborado pelas autoras, 2014
InputText: componente de entrada com capacidade de digitação.
Figura B.3 – Exemplo do componente inputText
Fonte: Elaborado pelas autoras, 2014
73
InputTextarea: componente de entrada que quando clicado se expande de acordo
com a quantidade de texto.
Figura B.4 – Exemplo do componente inputTextarea
Fonte: Elaborado pelas autoras, 2014
OutputLabel: componente que exibe um texto por meio do seu atributo “value”.
Figura B.5 – Exemplo do componente outputLabel
Fonte: Elaborado pelas autoras, 2014
Password: componente de entrada de texto para inserir senhas.
Figura B.6 – Exemplo do componente password
Fonte: Elaborado pelas autoras, 2014
SelectOneMenu: componente utilizado para carregar listas, realizar busca, etc.
Figura B.7 – Exemplo do componente selectOneMenu
Fonte: Elaborado pelas autoras, 2014
74
SelectOneRadio: componente que permite escolher um único item de uma coleção.
Figura B.8 – Exemplo do componente selectOneRadio
Fonte: Elaborado pelas autoras, 2014
CommandButton: componente visual que exibe um botão.
Figura B.9 – Exemplo do componente commandButton
Fonte: Elaborado pelas autoras, 2014
Growl: componente que exibe mensagens em caixas de texto no estilo de alertas.
Figura B.10 – Exemplo do componente growl
Fonte: Elaborado pelas autoras, 2014
GraphicImage: componente utilizado para representar imagens.
Figura B.11 – Exemplo do componente graphicImage
Fonte: Elaborado pelas autoras, 2014
75
DataTable: componente que fornece soluções para muitos casos de uso em
comum, como por exemplo, paginação, seleção, classificação, etc.
Column: utilizado por vários componentes, como por exemplo, tabela de dados.
Figura B.12 – Exemplo do componente dataTable
Fonte: Elaborado pelas autoras, 2014
Separator: componente que exibe uma linha horizontal utilizado para separar
conteúdos.
Figura B.13 – Exemplo do componente separator
Fonte: Elaborado pelas autoras, 2014
76
Fieldset: componente de agrupamento.
Figura B.14 – Exemplo do componente fieldset
Fonte: Elaborado pelas autoras, 2014
Menubar: componente de navegação horizontal
Figura B.15 – Exemplo do componente menubar
Fonte: Elaborado pelas autoras, 2014
77
Menu: componente de navegação.
Submenu: componente relacionado ao menu e representa um item do submenu.
Menuitem: componente utilizado por vários componentes do menu, como por
exemplo, submenu.
Figura B.16 – Exemplo dos componentes menu, submenu e menuitem
Fonte: Elaborado pelas autoras, 2014
TabView: componente recipiente para conteúdo em grupos de abas.
Tab: componente recipiente genérico utilizado por outros componentes, como por
exemplo, tabView.
Figura B.17 – Exemplo dos componentes tabView e tab
Fonte: Elaborado pelas autoras, 2014
78
Confirm: elemento de comportamento utilizado para se integrar com confirmDialog.
ConfirmDialog: componente visual que implementa uma janela de código, o qual
contém um botão para confirmar e outro botão para cancelar.
Figura B.18 – Exemplo dos componentes confirm e confirmDialog
Fonte: Elaborado pelas autoras, 2014
Dialog: componente que cobre outros elementos e oferece personalização,
redimensionamento, etc.
Figura B.19 – Exemplo do componente dialog
Fonte: Elaborado pelas autoras, 2014
Download