IMPLEMENTAÇÃO DE UM SISTEMA EM JAVA DESKTOP

Propaganda
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E
DESENVOLVIMENTO DE SISTEMAS
EDSON BRITES DA SILVA PINTO
LEANDRA DOS SANTOS SOUZA AZEVEDO
PATRÍCIA DEAMICIS DE SOUZA
IMPLEMENTAÇÃO DE UM SISTEMA EM JAVA DESKTOP:
ESTUDO DE CASO UTILIZANDO O PADRÃO MVC
CAMPOS DOS GOYTACAZES/RJ
2016
EDSON BRITES DA SILVA PINTO
LEANDRA DOS SANTOS SOUZA AZEVEDO
PATRÍCIA DEAMICIS DE SOUZA
IMPLEMENTAÇÃO DE UM SISTEMA EM JAVA DESKTOP:
ESTUDO DE CASO UTILIZANDO O PADRÃO MVC
Monografia apresentada ao Instituto Federal de
Educação,
Ciência
e
Tecnologia
Fluminense
Campus Campos-Centro, como requisito parcial
para a conclusão do Curso Superior de Tecnologia
em Análise e Desenvolvimento de Sistemas.
Orientadora: Profª. Drª. Verônica Aguiar da Silva,
D.Sc.
CAMPOS DOS GOYTACAZES/RJ
2016
EDSON BRITES DA SILVA PINTO
LEANDRA DOS SANTOS SOUZA AZEVEDO
PATRÍCIA DEAMICIS DE SOUZA
IMPLEMENTAÇÃO DE UM SISTEMA EM JAVA DESKTOP:
ESTUDO DE CASO UTILIZANDO O PADRÃO MVC
Monografia apresentada ao Instituto Federal de
Educação,
Ciência
e
Tecnologia
Fluminense
Campus Campos-Centro, como requisito parcial
para a conclusão do Curso Superior de Tecnologia
em Análise e Desenvolvimento de Sistemas.
Aprovados em 31 de maio de 2016.
Banca Avaliadora:
.....................................................................................................................................................
Profª. Verônica Aguiar da Silva (Orientadora)
Doutora em Genética e Melhoramento de Plantas (Ênfase em Bioinformática) – UENF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos-Centro
......................................................................................................................................................
Prof. Vinícius Barcelos da Silva
Mestre em Engenharia de Produção – UENF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos-Centro
......................................................................................................................................................
Prof. Breno Fabrício Terra Azevedo
Doutor em Informática na Educação – UFRGS
Instituto Federal de educação, Ciência e Tecnologia Fluminense/Campus Campos-Centro
Às nossas famílias,
com amor...
AGRADECIMENTOS
Em primeiro lugar agradeço a Deus, por nos dar saúde, perseverança nas horas difíceis
e forças para continuar a lutar e não deixarmos desistir jamais dos nossos objetivos e pelas
oportunidades que nos foram dadas na vida.
Aos nossos familiares, que estão sempre ao nosso lado, nos dando força, apoiando e
nos incentivando nesta árdua caminhada.
À nossa orientadora Profª. Dr ª. Verônica Aguiar, pela sabedoria, dedicação, paciência,
incentivo e determinação com o que nos orientou durante a realização deste trabalho.
Ao Prof. Vinícius Barcelos, que também nos ajudou neste trabalho.
Enfim, agradecemos a todos as pessoas que fizeram parte dessa etapa decisiva em
nossas vidas.
RESUMO
A principal proposta deste trabalho foi a de empregar a utilização dos padrões MVC e DAO
para a construção de um sistema desktop, discutindo a importância dessa estratégia em
relação a construção de sistemas desenvolvidos sem a utilização do padrão MVC. A
abordagem utilizada foi elaborar um estudo de caso, implementando duas versões do mesmo
sistema e discutir as vantagens e desvantagens associadas ao uso de uma ou outra abordagem.
Além disso, houve preocupação no sentido de desenvolver todo o ambiente de software sem
perder de vista esta abordagem, tendo como pano de fundo o gerenciamento de um salão de
beleza, deixando o legado de uma documentação que possa servir de apoio a outros estudantes
no curso.
Palavras-chave: Padrão MVC. Padrão DAO. Desenvolvimento de Sistemas.
ABSTRACT
The main goal of this project was the use of MVC and DAO patterns for the construction of a
desktop system, discussing the importance of this strategy in comparison to the construction
of systems developed without the utilization of the MVC pattern. The approach used was the
elaboration of a case study, implementing two versions of the same system and the
assessment of their advantages and disadvantages in using one or the other approach. In
addition, there was concern in the sense of developing all the software environment without
losing sight of this approach, having as background the management of a beauty salon, which
will serve as a legacy of a documentation that can be a support to other students in the course.
Keywords: MVC pattern. DAO pattern. Systems development.
LISTA DE FIGURAS
FIGURA 1: Diagrama do Sistema Sem o Padrão MVC .......................................................... 22
FIGURA 2: Divisão do Menu com Painéis Internos ................................................................ 22
FIGURA 3: Relação direta da Classe MenuSalao com a Classe ClienteDAO ........................ 23
FIGURA 4: Método de Salvar .................................................................................................. 23
FIGURA 5: Evento do Botão Salvar e o Método de salvar...................................................... 24
FIGURA 6: Execução do Método de Salvar Cliente ................................................................ 24
FIGURA 7: Diagrama de sequência - Salvar Cliente – Sem o Padrão MVC .......................... 25
FIGURA 8: Diagrama do Sistema com o Padrão MVC ........................................................... 26
FIGURA 9: Algumas Classes do Programa ............................................................................. 27
FIGURA 10: Representa a Comunicação das Classes que Compõem a Tela de Cliente ......... 27
FIGURA 11: Reação dos Métodos Sendo Chamados em Cada Classe ................................... 28
FIGURA 12: Método do Botão Salvar ..................................................................................... 28
FIGURA 13: Ação do Botão Salvar e Chamada do Método .................................................... 29
FIGURA 14: Chamada do Método da Classe Cliente na Camada Model................................ 30
FIGURA 15: Execução do Método Salvar Cliente .................................................................. 31
FIGURA 16: Diagrama de Sequência - Salvar Cliente – Com o Padrão MVC ....................... 32
FIGURA 17: Diagrama de Caso de Uso .................................................................................. 37
FIGURA 18: Diagrama de Sequência – Listar Todos os Clientes ........................................... 39
FIGURA 19: Diagrama de Sequência – Buscar e Salvar Cliente............................................. 40
FIGURA 20: Diagrama de Sequência – Buscar e Alterar Cliente ........................................... 41
FIGURA 21: Diagrama de Sequência – Buscar e Excluir Cliente ........................................... 42
FIGURA 22: Diagrama de Classe de Projeto ........................................................................... 43
FIGURA 23: Desenho das tabelas do banco de dados ............................................................. 45
FIGURA 24: Tela de Splash..................................................................................................... 46
FIGURA 25: Tela de Login do Sistema ................................................................................... 46
FIGURA 26: Tela de Gerenciamento de Agendamentos ......................................................... 47
FIGURA 27: Tela de Gerenciamento de Clientes .................................................................... 48
FIGURA 28: Tela de Gerenciamento de Especialidades ......................................................... 49
FIGURA 29: Tela Gerenciamento de Funcionários ................................................................. 50
FIGURA 30: Tela Gerenciamento de Serviços ........................................................................ 51
FIGURA 31: Tela Gerenciamento de Login ............................................................................ 52
LISTA DE QUADROS
QUADRO 1 – Representação das Tabelas e suas Descrições .................................................. 44
QUADRO 2 – Teclas de Atalhos do Sistema Dela .................................................................. 64
LISTA DE SIGLAS
API – Application Programming Interface
CRUD – Create – Read (Retrieve) - Update – Delete (Destroy)
DAO – Data Access Object
FK – Foreign Key
GUI – Graphical User Interface
IDE – Integrated Development Environment ou Ambiente de Desenvolvimento Integrado
IU – Interface do Usuário
JDBC – Java Database Connectivity
MVC – Model - View - Controller
OMG – Object Management Group
ORM – Object Relational Mapping
PK – Primary Key
SGBD – Sistema de Gerenciamento de Banco de Dados
SQL – Structured Query Language
TCC – Trabalho de Conclusão de Curso
UML – Unified Modeling Language
SUMÁRIO
1.
INTRODUÇÃO ............................................................................................................... 14
1.1.
Objetivo..................................................................................................................... 15
1.2.
Estruturação dos Capítulos..................................................................................... 15
2. TÉCNICAS PARA O DESENVOLVIMENTO DE PROJETOS DE
SOFTWARES..........................................................................................................................17
2.1.
Padrões de Projetos ................................................................................................. 17
2.1.1. MVC .......................................................................................................................... 19
2.1.2. DAO........................................................................................................................... 21
3.
ABORDAGEM PRÁTICA NO USO DE PADRÕES MVC e DAO ........................... 22
3.1.
Implementação do Sistema Sem o Padrão MVC .................................................. 22
3.2.
Desvantagens do não uso do padrão ...................................................................... 25
3.3.
Implementação do Sistema com o Padrão MVC .................................................. 26
3.4. Vantagens no Uso do Padrão MVC em Relação ao Desenvolvimento Sem
Padrão .................................................................................................................................. 32
4.
5.
3.5.
Vantagens do uso do padrão DAO ......................................................................... 34
3.6.
Considerações Gerais .............................................................................................. 34
DESCRIÇÃO DO SISTEMA DELA ............................................................................. 36
4.1.
Minimundo ............................................................................................................... 36
4.2.
Diagrama de Caso de Uso e Lista de Caso de Uso ................................................ 37
4.3.
Descrição de Caso de Uso e Diagrama de Sequência ............................................ 38
4.4.
Diagrama de Classe de Projeto ............................................................................... 43
4.5.
Projeto de Banco de Dados ..................................................................................... 44
4.6.
Interfaces do Sistema ............................................................................................... 46
TECNOLOGIAS UTILIZADAS ................................................................................... 53
5.1.
Visão Geral ............................................................................................................... 53
5.2.
Java ........................................................................................................................... 53
5.3.
Eclipse ....................................................................................................................... 54
5.4.
WindowBuilder ........................................................................................................ 54
5.5.
JCalendar ................................................................................................................. 55
5.6.
MySQL ...................................................................................................................... 55
5.7.
SQL ........................................................................................................................... 56
5.8.
JDBC ......................................................................................................................... 56
5.9.
UML .......................................................................................................................... 56
5.10. Astah ......................................................................................................................... 57
6.
CONCLUSÃO ................................................................................................................. 58
7.
TRABALHOS FUTUROS .............................................................................................. 59
8.
REFERÊNCIAS .............................................................................................................. 60
ANEXO .................................................................................................................................... 63
14
1. INTRODUÇÃO
A ideia principal deste projeto final de graduação é empregar a utilização dos padrões
MVC e DAO para construir um sistema, baseado nas boas práticas associadas a eles que se
propõem a resolver os problemas cotidianos associados ao desenvolvimento de softwares.
Os padrões tanto podem como devem ser utilizados para a construção de sistemas
pequenos, médios ou grandes e complexos pelo fato de conseguirem separar toda a
complexidade das etapas referentes ao processo de desenvolvimento, gerando assim melhores
resultados, facilidades de manutenção e possibilitando a reutilização.
Quando colocado fielmente em prática, com precisão, severidade e em conformidade
na abordagem do padrão (como deve ser usado), a codificação do programa torna-se mais
limpo e legível, evitando-se excesso de código e bugs desnecessários; e caso ocorra algum
problema, o reparo será muito mais rápido e eficaz.
É de grande importância para o desenvolvedor a utilização, seja dos padrões de projeto
aqui aplicados ou de algum outro padrão que exista para o desenvolvimento de uma boa
aplicação.
Alguns padrões podem se destacar melhor e atingir resultados mais satisfatórios que
outros, mas isso vai depender de como vai ser empregado para resolver um determinado
problema.
A etapa de decidir qual padrão usar e qual é o melhor para o projeto vai depender do
conhecimento do desenvolvedor que deverá conhecer, pelo menos, dois ou mais tipos de
padrões para poder comparar e fazer a escolha de qual utilizar, não impedindo que o
programador opte por uma miscigenação das técnicas de padrões mais elaboradas para
desenvolver um software de mais alto nível.
Numa visão ampla, os softwares para gerenciamento de salões de beleza geralmente
não são customizáveis, e o software proposto pretende construir, suprindo algumas
necessidades dessa área e melhorar a prestação dos serviços oferecidos para os gerentes,
administradores e clientes de salões de beleza que estão no mercado, sendo este o objetivo
secundário do projeto.
Tendo em vista que o protótipo desenvolvido sirva de modelo para outros estudantes
universitários que desejam aplicar os padrões MVC e DAO na construção de um aplicativo
15
desktop. Este projeto também tem como proposta ser o mais didático possível na sua
implementação e descrição.
Dentro dessa perspectiva, foi descrito um minimundo onde é retratado os principais
requisitos de um cliente fictício para que se pudesse dar início a construção do sistema.
1.1. Objetivo
A proposta é colocar em prática os padrões MVC e DAO e mostrar a importância e as
vantagens a eles associados na construção de um sistema de gerenciamento comercial para um
salão de beleza.
1.2. Estruturação dos Capítulos
Este projeto final de graduação de curso está estruturado em sete capítulos, são eles:
Introdução, Técnicas para o Desenvolvimento de Projetos de Softwares, Abordagem Prática
no Uso de Padrões MVC e DAO, Descrição do Sistema Dela, Tecnologias Utilizadas,
Conclusão e Trabalhos Futuros.
Capítulo 1 – Introdução
O primeiro capítulo desse trabalho aborda uma visão geral de padrões de projetos e a
importância e as vantagens de utilizá-los na construção de softwares, tendo como foco e
desafio, a construção de um protótipo de software para o mercado de salão de beleza.
Capítulo 2 – Técnicas para o Desenvolvimento de Projetos de Softwares
Neste capítulo serão apresentados os principais padrões de projetos utilizados para o
desenvolvimento de sistemas.
16
Capítulo 3 – Abordagem Prática no Uso de Padrões MVC e DAO
O terceiro capítulo demonstra um paralelo real entre o desenvolvimento de um sistema
sem o uso do padrão e o desenvolvimento de um sistema utilizando o padrão MVC, e relata
claramente as vantagens associadas no emprego desses padrões.
Capítulo 4 – Descrição do Sistema Dela
Capítulo onde são abordados: a descrição do minimundo, o diagrama de caso de uso,
os diagramas de sequência, o diagrama de classe do projeto, a representação das tabelas com
suas descrições e o desenho da comunicação das tabelas do banco do sistema e finalizando
com todas as interfaces do programa implementadas com uso dos padrões.
Capítulo 5 – Tecnologias Utilizadas
O quinto capítulo cita as principais ferramentas e tecnologias utilizadas para o
desenvolvimento do software comercial Dela.
Capítulo 6 – Conclusão
No sexto capítulo reitera as vantagens em utilizar os padrões de projetos, ressalta a
implementação do sistema Dela com o MVC e por final esclarece formalmente algumas
desvantagens quando o desenvolvedor não utiliza a arquitetura proposta ou nenhum padrão de
projeto.
Capítulo 7 – Trabalhos Futuros
Neste capítulo são abordadas algumas propostas possíveis de implementação para
completar, melhorar e aperfeiçoar o sistema futuramente.
17
2. TÉCNICAS PARA O DESENVOLVIMENTO DE PROJETOS DE
SOFTWARES
2.1.
Padrões de Projetos
De acordo com Jandl,
Em 1977, Christopher Alexander e seus colegas publicaram o livro “A
pattern language1”, uma espécie de catálogo com 253 padrões construtivos,
defendendo que os métodos tradicionais empregados pela arquitetura não
supriam as reais necessidades dos usuários das construções propostas e,
portanto, que a arquitetura não atendia a sociedade como deveria, pois, seu
maior objetivo é melhorar a qualidade de vida das pessoas. Cada um dos
padrões apresentados era como um pequeno manual sobre a questão
arquitetônica (JANDL, 2003 apud NETO, 2006, p.11).
Metsker reforça ainda que “Christopher Alexander foi um dos primeiros escritores a
encapsular as melhores práticas de um ofício por meio da documentação de seus padrões.
Seus trabalhos estão relacionados à arquitetura de edifícios, não de software” (METSKER,
2004, p.17).
Craig Larman diz que“[...] Os padrões de software se originaram na década de 1980,
com Kent Beck, que descobriu o trabalho de Alexander em arquitetura, e depois foram
desenvolvidos por Beck com Ward Cunningham [...] na Tektronix” (LARMAN, 2007, p.296).
Segundo Junqueira,
O uso do design patterns [padrões de projetos] vem preencher esta lacuna
que existe, tornando-se um mecanismo eficiente no compartilhamento de
conhecimento entre os desenvolvedores (principalmente hoje com o uso da
Internet). A meta é a criação de uma linguagem comum, que permita uma
comunicação efetiva no que se refere à troca de experiências sobre
problemas e suas soluções. Desta forma, soluções que se aplicaram as
situações particulares, podem ser novamente aplicadas em situações
semelhantes por outros desenvolvedores. Codificando estas soluções,
estamos também capturando o conhecimento do sistema, indo ao encontro
das necessidades dos usuários. A criação de um repositório de design
patterns ajuda tanto ao desenvolvedor experiente quanto ao novato, no
1
Significa “Uma Linguagem Padrão” traduzido do inglês.
18
reconhecimento de situações nas quais o reuso poderia ocorrer. O foco
principal não é nem tanto tecnológico, mas sim o de criar uma cultura de
catalogação de experiências e soluções para apoiar o desenvolvimento de
software (JUNQUEIRA, 2002 apud NETO, 2006, p. 9).
Desta forma pode-se reafirmar que os padrões de projetos são soluções comprovadas e
catalogadas que surgiram para resolver problemas que se repetiam frequentemente e que
foram adotados pela indústria de software2.
Os padrões e técnicas são utilizados tanto para auxiliar na construção de sistemas
simples como complexos. Eles visam desenvolver software livre de defeitos e de fácil
manutenção. Um software livre de defeitos é aquele que atende exatamente suas
especificações e sempre se comportará conforme esperado pelo cliente.
Construir software livre de defeitos não é tarefa fácil para um programador. Além de
saber programar satisfatoriamente em uma determinada linguagem de programação, terá que
utilizar melhores técnicas de engenharia de software e também boas práticas de programação.
É fundamental para se construir qualquer aplicação, adotar designer patterns ou
arquiteturas3, por ser padrões de alto nível que possibilitam expandir o software e fazer
reutilização de código fonte. Segundo Deitel,
Padrões de projetos (design patterns) são arquiteturas testadas para
construir software orientado a objetos flexíveis e que podem ser mantidos
[...]. O campo dos padrões de projetos tenta enumerar aqueles padrões
recorrentes, encorajando os designers de software a reutilizá-los para
desenvolver softwares de melhor qualidade em menos tempo, dinheiro e
esforço (DEITEL, 2010, p.18, grifo do autor).
Algumas vantagens do uso de padrões de projetos:
2

Alimentam a produtividade;

Representam boas práticas de projeto;

Permitem obter soluções comprovadas;

Evita duplicação de código (reuso);

Ajudam a detectar e resolver problemas recorrentes;

Melhoram e facilitam a manutenção do sistema;

Facilita a documentação.
Software ou aplicativo é um programa desenvolvido utilizando uma linguagem de programação. Ele ajuda o
usuário a realizar alguma tarefa.
3
Existem outras arquiteturas para construção de sistemas além do MVC.
19
Quando não se utiliza um padrão de projeto na construção de um software pode-se
dizer que o sistema foi desenvolvido sem padrão ou simplesmente é anti-padrão. Em termo
simplório, reforçando que a ideia de anti-padrão é realmente quando uma aplicação não se
detecta fielmente nenhuma base de padrão de projeto apropriado no desenvolvimento de um
software específico; definitivamente o sistema é desenvolvido ou fabricado a moda antiga.
Segundo Freeman & Freeman “ Um anti-padrão lhe informa como ir de um problema
até uma solução ruim” (FREEMAN & FREEMAN, 2007, p.478).
No entanto, para ser tornar um projetista de sucesso é imprescindível que o
desenvolvedor ou implementador domine boa parte desses padrões e saiba compreender a
magnitude e utilize-os positivamente para enriquecer o produto final.
“A ferramenta crucial de projeto para desenvolvimento de software é uma mente bem
educada em princípios de projeto. Não é a UML ou qualquer outra tecnologia” (LARMAN,
2007, p.288).
2.1.1. MVC
Segundo TK78, “Uma primeira descrição influente da arquitetura em camadas para
sistemas de informação, que incluía uma interface com o usuário e armazenamento persistente
dos dados, era conhecida como arquitetura de três camadas [...]. ” (TK78 apud LARMAN,
2007, p.574).
As camadas, segundo Larman, “[...] são organizadas de modo que as ‘mais altas’
(como a camada de IU4) solicitem serviços das ‘mais baixas’, mas normalmente não viceversa” (LARMAN, 2007, p.221, grifo nosso).
Cleuton diz que “O Padrão MVC pode ser empregado com qualquer tecnologia ou
pacote. Em aplicações Java desktop normalmente usamos o pacote Swing, cujos elementos já
empregam o padrão MVC em sua construção” (SAMPAIO, 2007, p.80).
As camadas5 do padrão MVC oferecem flexibilidade e uma nítida separação de
responsabilidades. Assim, segundo Fowler,
Uma responsabilidade é uma frase curta que resume algo que um objeto
deve fazer: uma ação que o objeto executa, algum conhecimento que o
4
5
IU: Interface do Usuário
Segundo POSA, “Camadas – Este é um padrão POSA[BMRSS96]” (POSA apud LARMAN, 2007, p.329).
20
objeto conserva ou algumas decisões importantes que o objeto toma. A ideia
é que você deve ser capaz de pegar qualquer classe e resumi-la com algumas
responsabilidades. Fazer isso pode ajudá-lo a pensar mais claramente a
respeito do projeto de suas classes (FOWLER, 2005, p.75).
Entretanto, de acordo com Araújo, o padrão arquitetural MVC “[...] visualiza a
aplicação sob três aspectos: Modelo (Model), Apresentação (View) e Controlador
(Controller): ” (ARAUJO, s.d., p.70)



Modelo – Responsável pelos dados e transações da aplicação que podem
ser associadas a ela. O modelo encapsula a lógica do negócio.
Apresentação – Responsável por apresentar os dados.
Controlador – Recebe todas as solicitações que chegam e controla suas
execuções. Para executar uma solicitação, o controlador acessa o modelo
e exibe as apresentações conforme necessário (ARAUJO, s.d., p.70-71,
grifo do autor).
Com a utilização do padrão MVC é possível separar toda a lógica de apresentação
(view) da lógica de programação (controller) e, com essa possibilidade, o sistema se torna em
sua totalidade mais independente, escalável, confortável e fácil de manter. Dessa forma ficam
separados a lógica da camada de modelo (model) da camada de apresentação (view), segundo
Larman,
Pelo princípio de separação Modelo-Visão, sabemos que objetos de IU não
devem conter lógica de programação ou “negócio” por exemplo, como
calcular o movimento de um jogador. Assim, quando os objetos de IU
detectam o evento do mouse, precisam delegar (enviar a tarefa para outro
objeto) a solicitação para objetos de domínio na camada de domínio
(LARMAN, 2007, p.303, grifo do autor).
Segundo Fowler, na arquitetura “MVC é importante que haja uma busca pela
separação de pensamentos na hora do desenvolvimento de cada um de seus componentes.
Uma forma interessante de se pensar é separar a view do model e o controller da view”
(FOWLER, 2003, s.p.).
21
2.1.2. DAO
De acordo com o site Javabuilding.com,
Antes do uso de Java em sistemas corporativos as aplicações eram
majoritariamente escritas em linguagens orientadas a processo e a ordem e
instruções SQL específicas continham regras de negócio. Ao passar esses
sistemas para Java, essas regras não se poderiam perder e, ao mesmo tempo,
há que se trabalhar com objetos. O padrão DAO visava originalmente
encapsular esses conjuntos de códigos SQL que existiam em aplicações
legadas. Esse código continha regras tanto na pesquisa dos dados, tanto na
edição dos dados. É comum ao inserir um determinado dado, ter que inserir
ou atualizar outros.
Para projetos novos, que não dependem de código legado, JDBC é a escolha
para comunicar com bancos dados. Contudo o uso de JDBC obriga as
aplicações Java, a escrever SQL para comunicar com o gerenciador de banco
de dados. [...]. O problema é que nem todos os drivers JDBC suportam todos
os tipos de instrução SQL, ou nem sempre com o mesmo dialeto. Alguns
suportam operações que outros não. Java é orientado a objetos e mapear as
propriedades dos objetos para tabelas utilizando SQL é processo chato,
demorado, passível de erro e que ninguém quer repetir em diferentes pontos
da aplicação (JAVABUILDING, 2016).
O DAO (Data Access Object) é um padrão para persistência de dados em banco de
dados. Utiliza a linguagem SQL e busca melhorar a condição das classes separando-as de
forma organizada e responsável. Dessa forma torna-se mais viável manter a manutenção do
código nesta classe pois é centralizada as operações CRUD (Create – Read – Update –
Delete) em um só lugar.
Reitera-se que é um padrão para persistência de dados que separa as regras de negócio
das regras de acesso a dados. “Este acesso pode ser a um banco de dados relacional ou
orientado a objetos, mainframes, sistemas legados, flat-files ou qualquer repositório de
arquivos” (ALUR; CRUPI; MALKS, 2003 apud ODISI, 2008, p.30). O padrão DAO é
utilizado em aplicações que usam a arquitetura MVC.
Dentre as principais vantagens no uso do padrão DAO são:
 Pode ser utilizado em aplicações desktop, web ou mobile independente da linguagem
de programação usada;
 Abstrai o código fonte (de onde vem os dados) e o modo de manipular as operações
CRUD, no banco de dados, como: salvar, alterar, excluir, pesquisar, etc.
22
3. ABORDAGEM PRÁTICA NO USO DE PADRÕES MVC e DAO
Para demonstrar determinação, habilidades e esforço na prática em construção de
sistemas foi proposto um paralelo entre o sistema desenvolvido sem o uso do padrão MVC e
outro sistema utilizando o padrão MVC.
3.1.
Implementação do Sistema Sem o Padrão MVC
FIGURA 1: Diagrama do Sistema Sem o Padrão MVC
Fonte: Produzido pelos Autores
A figura 1 mostra o sistema antes da transformação no padrão MVC, onde a classe
MenuSalao se comunica com algumas classes de persistência.
FIGURA 2: Divisão do Menu com Painéis Internos
Fonte: Produzido pelos Autores
23
A figura 2, ilustra a classe MenuSalão subdividido em painéis. Nesta classe foi
implementada toda a lógica da aplicação e a lógica de programação em uma única e exclusiva
tela. Todas as telas de gerenciamento foram desenvolvidas utilizando painéis internos.
FIGURA 3: Relação direta da Classe MenuSalao com a Classe ClienteDAO
Fonte: Produzido pelos Autores
Para uma linha de raciocínio e melhor interpretação, observa-se somente a
comunicação entre o painel ClientePanel com a classe ClienteDAO na figura 3.
FIGURA 4: Método de Salvar
Fonte: Produzido pelos Autores
Na figura 4, mostra na classe MenuSalão a chamada do método para salvar os dados
de um cliente sendo referenciado pelo painel ClientePanel onde está o botão de salvar.
24
FIGURA 5: Evento do Botão Salvar e o Método de salvar
Fonte: Produzido pelos Autores
Demonstra na figura 5, o código do evento do botão salvar implementado na classe
MenuSalão e em seguida é chamado o método salvarCliente() para salvar os dados de um
cliente.
FIGURA 6: Execução do Método de Salvar Cliente
Fonte: Produzido pelos Autores
25
A figura 6 ilustra a execução do método que permite salvar os dados de um cliente na
classe ClienteDAO. Antes de fazer a persistência das informações, este método pega a
conexão que por ventura tem o endereço do banco de dados, para que em seguida possa
realizar o salvamento, e conclui encerrando a conexão com o banco.
FIGURA 7: Diagrama de sequência - Salvar Cliente – Sem o Padrão MVC
Fonte: Produzido pelos Autores
Observa-se na figura 7, a representação do diagrama de sequência do sistema sem o
padrão MVC e aborda a situação a qual é chamado o método salvarCliente() quando o botão
salvar é pressionado.
3.2.
Desvantagens do não uso do padrão
Uma das grandes desvantagens do sistema implementado sem o uso do padrão MVC é
a quantidade de código que é gerado em uma classe ou, como pode ser chamado também na
linguagem técnica como, sobrecarga de código fonte.
26
Um dos grandes problemas enfrentado pelos desenvolvedores de software que não
utilizam padrões de projeto é a manutenibilidade do sistema, seja pelo próprio criador ou por
outros desenvolvedores, uma vez que código de interface, de persistência e a lógica do
negócio estão numa única classe, mergulhados em linhas e linhas de código.
Sabe-se que um sistema assim construído não será bem visto por outros
implementadores experientes pois demandaria muito tempo para que se possa fazer qualquer
manutenção ou até mesmo o acoplamento de uma extensão ou uma nova funcionalidade ao
sistema.
O uso de padrões de projeto visa conferir funcionalidade, manutenibilidade,
reusabilidade, dentre outras vantagens, ao código do sistema, embora desenvolver sistemas
padronizados nem sempre é mais fácil no início.
3.3.
Implementação do Sistema com o Padrão MVC
FIGURA 8: Diagrama do Sistema com o Padrão MVC
Fonte: Produzido pelos Autores
Nos padrões de projetos cada camada tem sua responsabilidade. Na figura 8, reflete a
real representação dos padrões MVC e DAO utilizado neste projeto.
27
FIGURA 9: Algumas Classes do Programa
Fonte: Produzido pelos Autores
Na figura 9, mostra parcialmente algumas classes que foram implementadas conforme
as camadas abordando os padrões. Para o desenvolvimento das classes da camada view foram
utilizados vários painéis externos para representar as telas do sistema.
FIGURA 10: Representa a Comunicação das Classes que Compõem a Tela de Cliente
Fonte: Produzido pelos Autores
A separação em camadas será melhor detalhada na figura 10, a camada VIEW é
representada pela classe ClientePanel, a camada CONTROLLER é representada pela classe
ClienteController, a camada MODEL é representada pela classe Cliente e a camada DAO é
representada pela classe ClienteDAO, reiterando assim a compreensão e a comunicação que
existe entre essas classes.
Para redigir uma sequência lógica por traz do click do botão, passando de método a
método, especula-se uma breve introdução que detalha um atendimento no cadastro do
28
cliente: O atendente preenche as informações básicas de um cliente na tela e após isso ele
clica no botão salvar, a ação é disparada e os métodos serão chamados um a um até que os
dados cheguem no banco de dados. Visto isso as próximas figuras demostrarão para melhor
compreensão a reação sutil do comportamento de cada método desenvolvido.
FIGURA 11: Reação dos Métodos Sendo Chamados em Cada Classe
Fonte: Produzido pelos Autores
De acordo com a figura 11, a imagem é uma retratação real da reação de cada método
sendo chamado quando o botão salvar é pressionado. Isto é visto a nível de desenvolvedor
pois o usuário nem imagina o que se passa por trás de um simples click do mouse em um
botão. Nas próximas imagens é mostrado os detalhes de cada método que foi implementado
nas respectivas classes.
FIGURA 12: Método do Botão Salvar
Fonte: Produzido pelos Autores
A figura 12, representa o código do método do botão salvar que está na classe
ClientePanel. É o primeiro e principal método a ser chamado quando o usuário clica no botão.
É a partir deste método que ele invoca o próximo método que está implementado na classe da
camada controller. Para que se possa dar continuidade na execução desta ação, será mostrado
na próxima imagem o tratamento e execução do método chamado e implementado na classe
ClienteController.
29
FIGURA 13: Ação do Botão Salvar e Chamada do Método
Fonte: Produzido pelos Autores
A seguir é dado continuidade à ação do método que foi ativado anteriormente, na
figura 13, mostra de forma parcial um trecho de código do evento do botão salvar sendo
formalmente executado na classe ClienteController. Foi necessário também implementar o
método actionPerfomed(ActionEvent e) pois ele é de extrema importância nesta classe para
que o evento seja de fato executado corretamente.
A classe ClienteController é responsável por controlar e tratar da melhor forma todas
as informações que vem da classe da camada view. É ela que carrega o objeto para ser
persistido no banco de dados. Na classe ClienteController contém somente a lógica de
programação.
A partir das linhas 60 até 74, como dito anteriormente, o objeto cliente está sendo
carregado com as informações vindas da tela de gerenciamento de cliente para outra camada,
a model, cujo papel crucial é dar bom relacionamento e funcionamento do programa; e por
final na linha 76 é ilustrado a chamada do método salvar().
30
FIGURA 14: Chamada do Método da Classe Cliente na Camada Model
Fonte: Produzido pelos Autores
Antes de persistir os dados no banco através da camada DAO, a classe
ClienteController chama o método salvar() que está implementado na classe Cliente que está
na camada modelo. Este, por sua vez, chama o método salvarCliente(). Na classe ClienteDAO
o método executa todo o código para persistir os dados do cliente. Na figura 14 é mostrado a
execução do método salvar() na camada model.
Vale ressaltar que numa situação em que for preciso verificar o cpf de um cliente ou
funcionário, por exemplo, todo o código que verifica e testa a validade do cpf, não estará
implementado nem na camada controller, nem na camada dao e muito menos será de
responsabilidade da camada view, tratar isso. Sendo assim, neste caso, tradado na camada
model.
Este validador não foi implementado neste projeto, porém a discussão é tão somente
para ilustrar situações de boas práticas para situações simulares, que podem ser empregadas
na programação de um software de alto nível.
31
FIGURA 15: Execução do Método Salvar Cliente
Fonte: Produzido pelos Autores
Na figura 15, mostra o trecho do código para finalizar o salvamento dos dados de um
cliente, este só é realizado graças a chamada do método anterior. Nesta imagem está sendo
retratado a execução do método salvarCliente() juntamente com toda a lógica para a
persistência dos dados no banco que está implementada na classe ClienteDAO.
32
FIGURA 16: Diagrama de Sequência - Salvar Cliente – Com o Padrão MVC
Fonte: Produzido pelos Autores
Na figura 16, mostra o diagrama de sequência usando os padrões MVC e DAO, e
aborda brevemente o disparo do click no botão salvar e a sequência dos métodos a serem
chamados posteriormente.
3.4.
Vantagens no Uso do Padrão MVC em Relação ao Desenvolvimento
Sem Padrão
Algumas das principais vantagens detectadas foram: modularidade, reusabilidade,
manutenibilidade, usabilidade e confiabilidade.
33
Quando o desenvolvedor se deparar com um sistema de grande porte ou até mesmo
complexos, deve ser obrigação dele dividir o sistema em partes menores (módulos), também
pode ser chamado de modularidade do sistema. Segundo Mendes,
Existem três metas que a modularidade tenta obter:



Capacidade de decompor um sistema complexo e/ou de grande porte;
Capacidade de compor um sistema a partir de um conjunto de módulos;
Compreender a modularização do sistema (MENDES, 2002, p.41).
A manutenibilidade é uma variante de extrema importância no clico de vida do
software. Ela é primordial para qualquer aplicação desenvolvida seja em Java ou em outra
linguagem de programação.
“A manutenibilidade é um tanto abrangente pois ela envolve tanta atividade de reparo
(de algum erro existente no sistema de software) quanto a atividade de alteração/evolução de
características existentes ou adição de novas não previstas ou capturadas no projeto inicial”
(MENDES, 2002, p.47, grifo do autor).
O reuso, de acordo com Mendes, “[...] pode ser visto sob diferentes perspectivas. Ele
pode ser orientado a componentes, orientado a processos ou orientado a conhecimento
(específico) de um domínio” (MENDES, 2002, p.53).
Outro fator importante que não se pode deixar de lado é a usabilidade do sistema.
Passou-se aquela época onde se tinham softwares complicados ou difíceis de se mexer.
Atualmente o usuário necessita de programas de qualidade e que também sejam fáceis de
utilizar e aprender. Afirma Mendes que, “a noção de usabilidade vem do fato de que qualquer
sistema projetado para ser utilizado por pessoas deveria ser fácil de aprender e usar, tornando
assim fácil e agradável a realização de qualquer tarefa” (MENDES, 2002, p.46).
Um software confiável é aquele desenvolvido com maior rigor e cautela tendo
qualidade superior a outros e com isso não deixará o usuário na mão na hora que ele mais
precisar. A confiabilidade é algo a ser defendido por Mendes onde diz que a “confiabilidade
de software é a probabilidade de o software não causar uma falha num sistema durante um
determinado período de tempo sob condições específicas” (MENDES, 2002, p.48).
34
3.5.
Vantagens do uso do padrão DAO
De acordo com Sunmicrosystems,
A camada de Modelo, em especial, pode interagir com outro padrão
denominado DAO (Data Access Object). O uso do DAO permite abstrair e
encapsular todos os acessos à fonte de dados, sendo responsabilidade do
mesmo gerenciar as conexões, armazenar e recuperar dados da fonte de
dados. Sua utilização permite que os objetos de negócio possam acessar as
informações persistidas sem conhecer os detalhes específicos de
implementação da fonte de dados. Além disso, uma possível migração de
banco de dados torna-se muito mais simples pois como os objetos de
negócio não possuem conhecimento sobre o modelo de persistência, a
migração requer alterações apenas nos objetos de acesso a dados
(SUNMICROSYSTEMS, 2002b apud ODISI, 2008, p.11).
Ressalta-se que o padrão DAO facilita a troca de um sistema de banco de dados para
outro, caso um dia isso seja necessário. O padrão DAO, neste projeto, utiliza uma fábrica de
conexões para que seja possível o endereçamento a um banco de dados específico.
Com a centralização desse serviço, melhora-se a performance, evita-se gargalos do
sistema e além de tudo, prioriza e centraliza a conexão.
3.6.
Considerações Gerais
Para melhor entendimento do padrão MVC aplicado no sistema, ele deve ser separado
conforme diz Araujo,
Separando [da apresentação] o controlador e o modelo, o fluxo da
aplicação é isolado. Desta forma, os desenvolvedores podem entender a
perspectiva das camadas apenas olhando o código. O fluxo da aplicação
pode ser alterado modificando-se o controlador sem alteração (ou pouca) do
restante do código. Separando o modelo da apresentação, o modelo é
isolado de alterações. Desta forma, os desenvolvedores podem alterar
a aparência da interface do usuário sem ter que mudar o modelo.
Separando a apresentação do modelo, a apresentação é poupada dos
detalhes de como funciona o modelo. [...]. (ARAUJO, s.d., p.71).
Segundo Deitel, “A refatoração envolve a reformulação do código para torná-lo mais
claro e mais fácil de manter e, ao mesmo tempo, preservar sua funcionalidade. Ela é
35
empregada com metodologias de desenvolvimento ágeis. [...]” (DEITEL, 2010, p.18, grifo do
autor).
Além dos benefícios do uso do padrão MVC já citados, Mendes reforça que,
A arquitetura MVC pode ser utilizada no projeto e na implementação de
sistemas interativos oferecendo a vantagem da modularidade, o que
possibilita tanto ajudar o desenvolvimento conceitual das aplicações quanto
permitir que partes já desenvolvidas para uma aplicação possam ser
reutilizadas em uma nova aplicação (MENDES, 2002, p. 134).
“[...]. Logo, o tempo necessário para desenvolver a primeira aplicação utilizando
MVC, tende a ser maior devido à quantidade extra de código exigida. No entanto, este esforço
é compensado com o desenvolvimento de outra aplicação, pois é possível reutilizar o código
já escrito” (ODISI, 2008, p.11).
A grande sacada desse padrão é a possibilidade de desenvolvimento iterativo e
incremental de um sistema em paralelo com outro desenvolvedor tendo em vista que os
envolvidos conheçam, estejam especializados e preparados para assumir esse risco.
36
4. DESCRIÇÃO DO SISTEMA DELA
4.1.
Minimundo
Um cliente deseja contratar nosso serviço com o intuito de informatizar sua empresa
para isso encomendou um software para o seu salão de beleza.
Os dados dos clientes deverão ser cadastrados com o nome, endereço, número,
complemento, bairro, cidade, estado, cep, sexo, cpf, rg, estado civil, data de nascimento,
celular e e-mail. Já os funcionários deverão ser cadastrados com o nome, endereço, número,
complemento, bairro, cidade, estado, cep, sexo, cpf, rg, estado civil, data de nascimento,
celular, e-mail e código da especialidade. Todas as especialidades deverão ser cadastradas
com uma descrição. Assim também para todos os serviços serão cadastrados informando-se a
descrição e valor cobrado.
O agendamento só poderá ser feito quando o cliente estiver previamente cadastrado. O
cliente pode ser atendido no estabelecimento comercial no mesmo dia e horário agendado por
dois ou mais funcionários, mas para isso os profissionais terão que ter especialidades
diferentes.
Para o reagendamento, o cliente entrará em contato com o salão e fará o pedido de
alteração da data e hora agendada por ele, mediante a disponibilidade de horário livre na
agenda do profissional.
Além disso, para acessar o sistema o funcionário do salão ou gerente precisará entrar
com algumas informações na tela de login como: o nome do usuário e a senha, que deverão
estar previamente cadastradas para liberação do acesso as funcionalidades do programa.
Com base nas necessidades do contratante foram detectados os requisitos principais
para a elaboração do sistema e listados abaixo:
 Gerenciamento de dados dos clientes
 Gerenciamento das especialidades do salão
 Gerenciamento de dados dos funcionários
 Gerenciamento dos serviços oferecidos
 Gerenciamento de dados dos usuários que manusearão o sistema
 Gerenciamento da agenda de horários dos funcionários
37
4.2.
Diagrama de Caso de Uso e Lista de Caso de Uso
FIGURA 17: Diagrama de Caso de Uso
Fonte: Produzido pelos Autores
Lista de caso de uso:
1. Logar no Sistema
2. Tratar Agendamentos
3. Tratar Clientes
4. Tratar Especialidades
5. Tratar Funcionários
6. Tratar Serviços
7. Tratar Logins
Atores: Atendente e gerente
38
4.3.
Descrição de Caso de Uso e Diagrama de Sequência
Segundo Fowler “Os casos de uso são uma ferramenta valiosa para ajudar no
entendimento dos requisitos funcionais de um sistema” (FOWLER, 2005, p.108).
O autor ainda diz
Um grande perigo dos casos de uso é que as pessoas os tornam complicados
demais e não conseguem prosseguir. Normalmente, você terá menos
problemas fazendo pouco do que fazendo demais. Umas duas páginas por
caso de uso está bom, para a maioria das situações. Se você tiver muito
pouco, pelo menos terá um documento curto e legível, que será um ponto de
partida para perguntas. Se você tiver demais, dificilmente alguém o lerá e o
entenderá (FOWLER, 2005, p.108-109).
Para fins de documentação do software não será elaborado todos os casos de uso
listados, pois implicará em uma documentação muito extensa, por isso foi optado por dar uma
sequência lógica ao caso de uso tratar clientes de forma parcial com suas principais operações
e a relação dos diagramas para cada ação efetuada.
39
Caso de Uso 3: Tratar Clientes
Ator: Atendente
Descrição: A possibilidade de realiza todas as seguintes operações no programa: buscar,
salvar, limpar, cancelar, habilitar, alterar, excluir e atualizar.

Curso Normal:
1. O atendente solicita a tela de gerenciamento de cliente.
2. O Sistema exibe a tabela com a lista de clientes existentes e permite fazer as operações
do programa.
3. Caso de uso se encerra.
FIGURA 18: Diagrama de Sequência – Listar Todos os Clientes
Fonte: Produzido pelos Autores
40

Fluxo alternativo (1.1): Buscar e Salvar Cliente
a) O atendente digita o nome ou letra que começa o nome do cliente e clica no botão
Buscar.
b) O sistema não retorna o nome ou os nomes começados com a letra informada.
c) O atendente clica no botão Novo para dar início ao cadastro de um novo cliente.
d) O sistema habilita os campos da tela para inclusão dos dados.
e) O atendente preenche os campos, no mínimo, todos os campos obrigatórios e clica no
botão Salvar.
f) O sistema confirma a gravação dos dados, recarrega a tabela com a lista de clientes e
retorna ao passo 2.
FIGURA 19: Diagrama de Sequência – Buscar e Salvar Cliente
Fonte: Produzido pelos Autores
41

Fluxo alternativo (1.2): Buscar e Alterar Cliente
a) O atendente digita o nome ou letra que começa o nome do cliente e clica no botão
Buscar.
b) O sistema retorna o nome ou os nomes começados com a letra informada.
c) O atendente seleciona uma linha da tabela com o nome do cliente que deseja alterar.
d) O sistema preenche automaticamente todos os campos com os dados do cliente.
e) O atendente clica no botão Habilitar para que todos os campos possam ser habilitados
para edição.
f) O atendente altera os campos desejados e clicar no botão Alterar.
g) O sistema confirma a gravação dos dados, recarrega a tabela com a lista de clientes e
retorna ao passo 2.
FIGURA 20: Diagrama de Sequência – Buscar e Alterar Cliente
Fonte: Produzido pelos Autores
42

Fluxo alternativo (1.3): Buscar e Excluir Cliente
a) O atendente digita o nome ou letra que começa o nome do cliente e clica no botão
Buscar.
b) O Sistema retorna o nome ou os nomes começados com a letra informada.
c) O atendente seleciona uma linha da tabela com o nome do cliente e clica no botão
Excluir.
d) O sistema solicita a confirmação da exclusão.
e) O atendente confirmada a exclusão.
f) O sistema exclui, recarrega a tabela com a lista de clientes e retorna ao passo 2.
FIGURA 21: Diagrama de Sequência – Buscar e Excluir Cliente
Fonte: Produzido pelos Autores
43
4.4.
Diagrama de Classe de Projeto
FIGURA 22: Diagrama de Classe de Projeto
Fonte: Produzido pelos Autores
44
4.5.
Projeto de Banco de Dados
clientes: codcli(PK), nome, endereco, numero, complemento, bairro, cidade, estado, cep,
sexo, cpf, rg, estadoCivil, dataNascimento, celular, email.
especialidades: codesp(PK), descricao.
funcionarios: codfun(PK), nome, endereco, numero, complemento, bairro, cidade, estado,
cep, sexo, cpf, rg, estadoCivil, dataNascimento, celular, email, idesp(FK).
servicos: codser(PK), descricao, valor.
agendamentos: idcli(PK), idfun(PK), data(PK), hora(PK), idser(FK), flag.
login: codlog(PK), usuario, senha, status.
QUADRO 1 – Representação das Tabelas e suas Descrições
Nesta parte foi exposto a habilidade no projeto de banco de dados que é o cargo chefe
de qualquer aplicação para operar os dados consistentemente. Caso ela não esteja bem
formatada o software pode sofrer com problemas logo no início. O projeto de banco foi
elaborado a partir dos requisitos firmados pelo cliente no minimundo.
Pode-se visualizar no quadro 1, os nomes das tabelas com todas as descrições
pertinentes as mesmas. O nome do banco criado para este projeto é salaodela que não está
especificado acima.
45
 Representação do Desenho do Banco no MySQL
FIGURA 23: Desenho das tabelas do banco de dados
Fonte: Produzido pelos Autores
A figura 23 representa o desenho do banco de dados da aplicação. Para isso foi
utilizado o software para criação e manipulação de banco de dados, o MySQL6. Além disso,
mostra a ligação que as tabelas têm umas com as outras de forma eficiente gerando toda a
estrutura de comunicação que vai resultar no banco do sistema desenvolvida para o TCC
(Trabalho de Conclusão de Curso). É no MySQL que o protótipo desenvolvido faz
determinadas operações geradas através das telas, que porventura, transfere as informações
para a base física e segura do banco.
A tabela login não tem ligação direta com as outras tabelas, mas sem ela não é
possível entrar e utilizar todas as funcionalidades do sistema.
6
Disponível em: http://dev.mysql.com/downloads/workbench/. Último acesso em: 10/06/2016.
46
4.6.
Interfaces do Sistema
Nesta parte do projeto mostrará todas as telas do programa desenvolvidas até o
momento.
Splash
A tela de Splash é responsável pela abertura do programa é nela que foi colocada uma
imagem simbólica e representativa com o intuito de realçar ainda mais o software
desenvolvido. Ela é a primeira tela do sistema a ser carregada. O logo foi criado
exclusivamente para este projeto.
FIGURA 24: Tela de Splash
Fonte: Produzido pelos Autores
Login no Sistema
Está é a segunda tela do software a ser carregada e é a principal tela de acesso as
funcionalidades do sistema. Só é permitida a entrada de usuários cadastrados no programa.
FIGURA 25: Tela de Login do Sistema
Fonte: Produzido pelos Autores
47
Gerenciamento de Agendamentos
A tela de AGENDAMENTO quando solicita pelo usuário carrega na tabela de
funcionário todos os funcionários referentes ao salão com sua especialidade.
A tela é responsável por mostrar o resultado da busca da agenda de um funcionário
para que possa começar a fazer o cadastro do agendamento conforme horário disponível do
profissional.
Na tela de AGENDAMENTO é possível fazer a busca de clientes cadastrados do salão
e também a de buscar todos os serviços que serão oferecidos no estabelecimento comercial.
Além de salvar o agendamento, a tela possibilita realizar outras operações como: alterar
(reagendar um agendamento) e excluir um agendamento.
FIGURA 26: Tela de Gerenciamento de Agendamentos
Fonte: Produzido pelos Autores
48
Gerenciamento de Clientes
A tela de CLIENTE quando solicitada pelo usuário carrega na tabela de cliente todos
os clientes cadastrados do salão.
Esta tela tem a responsabilidade principal de consultar os clientes antes de fazer
qualquer operação desejada, caso exista algum. Ela possibilita o cadastramento de clientes
para o estabelecimento. Além de salvar um novo cliente, a tela realiza outras operações como:
alterar, excluir e buscar um cliente.
FIGURA 27: Tela de Gerenciamento de Clientes
Fonte: Produzido pelos Autores
49
Gerenciamento de Especialidades
A tela de ESPECIALIDADE quando solicitada pelo usuário carrega na tabela de
especialidade todas as especialidades do salão.
A tela tem a responsabilidade principal de consultar as especialidades antes de fazer
qualquer operação desejada, caso exista algum. Além de salvar uma nova especialidade, a tela
possibilita realizar outras operações como: alterar, excluir e buscar uma especialidade.
FIGURA 28: Tela de Gerenciamento de Especialidades
Fonte: Produzido pelos Autores
50
Gerenciamento de Funcionários
A tela de FUNCIONARIO quando solicitada pelo usuário carrega na tabela de
funcionário todos os funcionários com sua especialidade.
Esta tela tem a responsabilidade principal de consultar os funcionários antes de fazer
qualquer operação desejada, caso exista algum. Além de salvar um novo funcionário, a tela
possibilita realizar outras operações como: alterar, excluir e buscar um funcionário.
Lembrando que para escolher qualquer função para um determinado funcionário nesta
tela, a especialidade dever ser obrigatoriamente cadastrada na tela de ESPECIALIDADE para
que ela possa ser mostrada e escolhida na tela de FUNCIONARIO.
FIGURA 29: Tela Gerenciamento de Funcionários
Fonte: Produzido pelos Autores
51
Gerenciamento de Serviço
A tela de SERVICO quando solicitada pelo usuário carrega na tabela de serviço todos
os serviços com seus valores taxados pelo salão.
A tela tem a responsabilidade principal de consultar os serviços antes de fazer
qualquer operação desejada, caso exista algum. Além de salvar um novo serviço, a tela
possibilita realizar outras operações como: alterar, excluir e buscar um serviço.
FIGURA 30: Tela Gerenciamento de Serviços
Fonte: Produzido pelos Autores
52
Gerenciamento de Logins
A tela de LOGIN quando solicitada pelo usuário carrega na tabela de login todos os
logins cadastrados até o momento no salão.
Esta tela tem a responsabilidade principal de consultar os logins antes de fazer
qualquer operação desejada, caso exista algum. Além de salvar um novo login (nome de um
usuário e a senha), a tela possibilita realizar outras operações como: alterar, excluir e buscar
um login.
Para que uma pessoa tenha acesso ao sistema, é obrigatório ter um cadastro. Por
padrão o sistema está definido com o nome de um usuário e a senha, mas isso pode ser
alterado sem problema algum pelo proprietário do software ou responsável e que também fará
os cadastros dos utilizadores do sistema.
FIGURA 31: Tela Gerenciamento de Login
Fonte: Produzido pelos Autores
53
5. TECNOLOGIAS UTILIZADAS
5.1.
Visão Geral
O projeto foi desenvolvido e testado em um computador que utiliza o sistema
operacional Windows 8 64 bits. Nesta máquina foram instalados todos os programas
requisitados para o desenvolvimento de um software para o estabelecimento comercial, tais
como:
5.2.

Java Runtime Environment 8 – JRE (Java Virtual Machine)

Java SE Development Kit 8 Update 66 – JDK (Compilador/Interpretador)

Eclipse JEE – Mars (IDE)

WindowBuilder (Plugin)

JCalendar (Plugin)

MySQL Connector Java (Plugin)

MySQL – Installer – Community (Banco de Dados)

Astah (Diagrama)
Java
Segundo Deitel, “O Java é a linguagem de programação orientada a objetos mais
amplamente utilizada do mundo” (DEITEL, 2010, p.6). Ela é uma poderosa linguagem de
programação.
De acordo com Horstmann, “A linguagem Java foi originalmente projetada para
programar dispositivos de consumo popular, mais foi utilizada pela primeira vez com sucesso
para escrever applets da Internet” (HORSTMANN, 2004, p.28).
54
Hubbard diz que
Uma razão para a popularidade do Java é a sua independência de
plataforma. Isto significa que o mesmo programa compilado pode executar
em qualquer computador. Esta independência torna o Java diferente da
maioria das outras linguagens de programação, que exigem diferentes
compiladores para diferentes sistemas operacionais (HUBBARD, 2006,
s.p.).
5.3.
Eclipse
O Eclipse é um dos principais ambientes de desenvolvimento integrado para
desenvolvimento orientado a objetos utilizando a linguagem de programação Java. Uma
ferramenta poderosa para construção de aplicações Desktop e Web.
A IDE7 (Integrated Development Environment), segundo Eclipse.org, pode ter “uma
coleção impressionante de ferramentas que podem ser facilmente instalados em seu ambiente
de trabalho IDE Eclipse, incluindo construtores de GUI [Graphic User Interface], ferramentas
de modelização, gráficos, relatórios, testes e muito mais” (IDE, 2016, tradução nossa).
5.4.
WindowBuilder
Instalado na IDE Eclipse, o WindowBuilder tem como objetivo principal simplificar o
desenvolvimento de interfaces gráficas.
Uma grande vantagem em utilizá-lo é a agilidade e a produtividade na construção de
telas do sistema, tornando assim muito mais fácil a criação de aplicações em java sem gastar
muito tempo escrevendo código fonte com o uso dos componentes gráficos prontos.
De acordo com o Eclipse.org, o construtor WindowBuilder8
[...] é uma ferramenta de programação visual que permite ao usuário
construir uma interface gráfica, arrastando e soltando elementos de uma
paleta em uma superfície de design. Construtores de GUI normalmente
7
8
Disponível em <https://eclipse.org/ide/>. Acessado em 20/04/2016.
Disponível em <http://www.eclipse.org/proposals/tools.windowbuilder/>. Acessado em 08/06/2016.
55
contêm assistentes e modelos que ajudam a automatizar o processo de
construção. As ferramentas de construção permitem que os desenvolvedores
gastem menos tempo e dinheiro criando interfaces gráficas em Java, porque
eles podem se concentrar na criação da funcionalidade específica do
aplicativo, em vez da codificação da lógica de baixo nível necessário para
ser executado (WINDOWBUILDER, 2016, tradução nossa).
5.5.
JCalendar
O plugin9 é um componente visual utilizado para escolher uma data. “O JCalendar10 é
composto de vários outros Java Beans, como a JDateChooser, a JMonthChooser e a
JYearChooser” (JCALENDAR, 2015, tradução nossa). Dessa forma, eles podem ser
facilmente usados em construtores de interface juntamente com os componentes gráficos do
WindowBuilder. Tendo a facilidade de selecionar uma data especifica utilizando este
componente sem precisar construir um calendário é uma grande vantagem na utilização deste.
5.6.
MySQL
Milani menciona que
O MySQL é um servidor e gerenciador de banco de dados (SGBD)
relacional, de licença dupla (sendo uma delas de software livre), projetado
inicialmente para trabalhar com aplicações de pequeno e médio portes, mas
hoje atendendo a aplicações de grande porte e com mais vantagens do que
seus concorrentes (MILANI, 2006, p.22).
O MySQL é usado para armazenar, consultar, recuperar dados dentre outras de forma
eficiente e para isso utiliza a linguagem SQL. Ele está disponível para vários sistemas
operacionais.
9
Na informática define-se plugin como todo programa, ferramenta ou extensão que se encaixa a outro programa
principal para adicionar mais funções e recursos a ele. Geralmente são leves e não comprometem o
funcionamento do software e são de fácil instalação e manuseio. Disponível em
<http://www.tecmundo.com.br/hardware/210-o-que-e-plugin-.htm>. Acessado em 08/06/2016.
10
Disponível em <http://toedter.com/jcalendar>. Acessado em 18/10/2015.
56
5.7.
SQL
De acordo com Milani, “A sigla SQL abrevia o termo Structure Query Language
(Linguagem Estruturada de Consulta), que é o nome dado à linguagem responsável pela
interação com os dados armazenados na maioria dos bancos relacionais” (MILANI, 2006,
p.339).
Alguns dos principais comandos SQL para manipulação de dados são: INSERT,
SELECT, UPDATE e DELETE. A SQL possibilita o controle de acesso aos dados.
Alguns programas como: MySQL, Oracle, Firebird, Microsoft Access, PostgreSQL
(código aberto) e HSQLDB (código aberto e escrito em Java) utilizam a linguagem SQL.
5.8.
JDBC
O JDBC (Java Database Connectivity) é uma API (Application Programming
Interface) escrita na linguagem Java para execução e manipulação das instruções SQL.
A tecnologia da biblioteca é bastante utilizada para facilitar o processo de persistência
das informações em bancos de dados relacionais. Esta API ou driver JDBC é de extrema
importância, sem ele não haverá a conectividade do banco de dados com a aplicação por isso
é muito utilizado pelos programadores que querem manipular dados.
5.9.
UML
Segundo OMG03, “A linguagem de Modelagem Unificada (UML) é uma linguagem
visual para especificar, construir e documentar os artefatos dos sistemas[...]" (OMG03a apud
LARMAN, 2010, p.39).
“A UML é um padrão relativamente aberto, controlado pelo OMG (Object
Management Group), um consórcio aberto de empresas. O OMG foi formatado para
estabelecer padrões que suportassem interoperabilidade, especificamente a de sistemas
orientados a objetos. [...].” (FOWLER, 2005, p.25).
57
A linguagem modelada unificada é usada para criar modelos de diagramas aplicada a
um programa orientado a objeto. Os diagramas podem representar partes do sistema ou o
sistema completo tendo em vista a facilidade no manuseio do software por meio da
documentação gerada. Os principais diagramas da UML são:

Diagrama de caso de uso;

Diagrama de classes;

Diagrama de objetos;

Diagrama de colaboração;

Diagrama de sequência;

Diagrama de atividades;

Diagrama de estado;

Diagrama de componentes;

Diagramam de pacotes.
5.10. Astah
Astah Community11 é uma ferramenta voltada para desenvolver diferentes tipos de
diagramas UML.
A versão do programa utilizada é gratuita, além desta, existem outras versões como:
Astah UML, Astah Professional e Astah Share que disponibilizam outras funcionalidades
além da modelagem UML, porém, sua licença é comercial. A modelagem no Astah
Community é prática e simples.
Dentre os principais diagramas utilizados durante o processo de elaboração do projeto
foram: diagramas de classe, caso de uso e sequência.
Além dos citados acima existem outros como: atividade, comunicação, máquina de
estado, componentes, implantação, estrutura de composição, objetos, pacotes e outros que o
próprio programa consegue gerar. Uma funcionalidade muito peculiar do software é
transformar o diagrama construídos em uma imagem para ser utilizada em outro programa.
11
Disponível em: http://astah.net/editions/community. Último acesso em: 01/11/2015.
58
6. CONCLUSÃO
O presente trabalho conseguiu atingir seus objetivos de forma clara e eficiente,
mostrando os benefícios e vantagens na utilização do padrão MVC em um estudo de caso.
Entretanto foi possível também fazer um paralelo entre um sistema que não utiliza o padrão e
outro sistema que utiliza o padrão; desta forma notável foi possível observar claramente as
desvantagens do uso do anti-padrão. E com isso tudo, possibilitou gerar um material desse
projeto final apresentado para que os interessados que quiserem conhecer um pouco mais
sobre o padrão MVC adotado no desenvolvimento do sistema comercial para um salão de
beleza; e possibilitando assim através deste, na prática, o desenvolvimento de sua própria
aplicação em Java e claro, visando desenvolver softwares melhores em menor tempo e com
satisfação garantida. E com esse conhecimento aqui adquirido o estudante pode até mesmo
utilizar essa metodologia em um sistema que não utiliza nenhum padrão recorrente e aplicar o
clássico padrão MVC, refletindo em uma solução estável e consistente.
Afirma-se, que o sistema desenvolvido adotando a arquitetura MVC obteve elevados
graus de aceitação graças as vantagens oferecidas pelo uso do padrão, gerando grandes
benefícios ao software e perpetuando o ciclo de vida do produto.
Ressalta-se ainda, que é crucial para o bom desenvolvimento de um sistema adotar e
aplicar os padrões de projeto. E quando não aplicado corretamente um padrão de projeto pode
acarretar em problemas no software, tornando-o assim um sistema não confiável e
imprevisível.
E quando a não utilização do padrão isso pode acarretar em um sistema pobre, cheio
de falhas e difícil de manter entre outros problemas que podem acontecer visto que a
sobrecarga de código não é nada elegante e responsável.
"Programar é divertido, mas desenvolver um software com qualidade é difícil". [...]
(LARMAN, 2007, p.13).
59
7. TRABALHOS FUTUROS
Foram identificadas no decorrer do desenvolvimento do projeto algumas oportunidades
de melhorias e possibilidades, podendo ser implementadas através de trabalhos futuros.
Por exemplo:
1. O tratamento da agenda de horários dos funcionários para que não sejam feitos nenhum
agendamento para uma data e/ou hora anterior da data de início das atividades do
salão;
2. A possibilidade de retorno dos dados do serviço de acordo com a especialidade do
funcionário na tela de agendamento;
3. Colocar imagem dos clientes na tela de gerenciamento de cliente e também colocar
imagem dos funcionários na tela de gerenciamento de funcionário.
4. A geração de relatórios de todas as telas principalmente a tela de agendamento e
adesão de outros módulos pertinentes ao sistema comercial.
5. E um grande salto em conjunto com o software desenvolvido, será a possibilidade de
integração de um novo ambiente de agendamento utilizando um aplicativo da
plataforma Android12, cujo qualquer cliente do salão poderá fazer o seu agendamento
de acordo com os horários disponíveis sem a necessidade de ir ou ligar para o
estabelecimento.
Estas são somente algumas propostas observadas de aperfeiçoamento do projeto final,
visto que este cumpriu todas as exigências e objetivos propostos.
12
ANDROID é o nome do sistema operacional baseado em Linux que opera em celulares (smartphones),
netbooks e tablets. É desenvolvido pela Open Handset Alliance, uma aliança entre várias empresas, dentre elas
a Google. Disponível em <http://www.significados.com.br/android/>. Acessado em 08/06/2016.
60
8. REFERÊNCIAS
ANDROID. Disponível em: http://www.significados.com.br/android. Último acesso em:
08/06/2016.
ARAUJO, Regina Borges de. Computação Ubíqua: Princípios, Tecnologias e Desafios. In:
XXI
Simpósio
Brasileiro
de
Redes
de
Computadores.
Disponível
em:
http://professordiovani.com.br/rw/monografia_araujo.pdf. Último acesso: 14/02/2016.
Astah Community. Disponível em: http://astah.net/editions/community. Último acesso em:
01/11/2015.
DEITEL, P, J. Java: como programar. 8ª. ed. São Paulo: Person Prentice Hall, 2010.
FOWLER, Martin. Arquitetura de Aplicações Corporativas. Porto Alegre: Bookman, 2003.
FOWLER, Martin. UML essencial: um breve guia para a linguagem padrão de
modelagem de objetos / Martin Fowler; trad. João Tortello. 3ª. Ed. Porto Alegre: Bookman,
2005.
FREEMAN & FREEMAN, Eric & Elizabeth. Padrões de Projetos: Seu cérebro em
padrões de projetos. Rio de Janeiro: AltaBooks, 2007.
HORSTMANN, Cay. Big Java. Porto Alegre: Bookman, 2004.
HUBBARD, Jonh R. Teoria e problemas da programação com Java. 2ª ed. Porto Alegre:
Bookman, 2006.
IDE. Disponível em: https://eclipse.org/ide.Último acesso em: 13/07/2015.
61
JAVABUILDING. Disponível em: http://www.javabuilding.com/academy/patterns/dao.html.
Último acesso em: 26/07/2015.
JCalendar. Disponível em: http://toedter.com/jcalendar. Último acesso em: 18/10/2015.
LARMAN. Craig. Utilizando UML e Padrões. 3ª. ed. Porto Alegre: Bookman, 2007.
MENDES, Antônio. Arquitetura de software: desenvolvimento orientado para
arquitetura. Rio de Janeiro: Campus, 2002.
METSKER, Steven John. Padrões de projeto em Java. Porto Alegre: Bookman, 2004.
MILANI, André. MySQL: Guia do Programador. São Paulo: Novatec Editora, 2006.
MySQL. Disponível em: http://dev.mysql.com/downloads/workbench. Último acesso em:
10/06/2016.
NETO, Luis Francisco Thomazini. Padrões de projetos. 2006. Monografia (Bacharelado em
Ciência da Computação) – Curso de Ciência da Computação da Faculdade de Jaguariúna,
Jaguariúna. Disponível em: bibdig.poliseducacional.com.br/document/?down=92. Último
acesso em: 01/06/2016.
ODISI, Francis Benito. Geração de Código para Acesso a Dados Utilizando os Padrões
MVC
e
DAO.
Itajaí
(SC).
Novembro
de
http://siaibib01.univali.br/pdf/Francis%20Benito%20Odisi.pdf.
2008.
Último
Disponível
em:
acesso
em:
19/05/2016.
Plugin. Disponível em: http://www.tecmundo.com.br/hardware/210-o-que-e-plugin-.htm.
Último acesso em 08/06/2016.
SAMPAIO, Cleuton. Guia do Java: Enterprise Edition 5: desenvolvendo aplicações
corporativas. Rio de Janeiro: Brasport, 2007.
62
WindowBuilder.
Disponível
Último acesso em: 08/06/2016.
em:
http://www.eclipse.org/proposals/tools.windowbuilder.
ANEXO
64
TECLAS DE ATALHO DO SISTEMA
Com o propósito de facilitar e aumentar a usabilidade do software foi programado e
testado algumas teclas de atalhos que serão apresentados abaixo:
ALT + A
Ativa o botão Alterar
ALT + B
Ativa o botão Buscar
ALT + C
Ativa o botão Cancelar
ALT + E
Ativa o botão Excluir
ALT + H
Ativa o botão Habilitar
ALT + L
Ativa o botão Limpar
ALT + N
Ativa o botão Novo
ALT + S
Ativa o botão Salvar
ALT + T
Ativa o botão Atualizar
ALT + F4
Fecha o sistema
QUADRO 2 – Teclas de Atalhos do Sistema Dela
Download