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

Propaganda
CENTRO ESTADUAL DE EDUCAÇÃO
TECNOLÓGICA “PAULA SOUZA”
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
MANUEL AFONSO DE LAVA GRANJEIA
DESENVOLVIMENTO DE UMA APLICAÇÃO WEB PARA PEQUENOS
ESCRITÓRIOS DE ADVOCACIA, COMBINADO COM USO DE
DISPOSITIVO MÓVEL
LINS/SP
2º SEMESTRE/2011
CENTRO ESTADUAL DE EDUCAÇÃO
TECNOLÓGICA “PAULA SOUZA”
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
MANUEL AFONSO DE LAVA GRANJEIA
DESENVOLVIMENTO DE UMA APLICAÇÃO WEB PARA PEQUENOS
ESCRITÓRIOS DE ADVOCACIA, COMBINADO COM USO DE
DISPOSITIVO MÓVEL
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnólogo em Banco de Dados.
Orientador: Prof. Me. João Luís Cardoso de
Moraes
LINS/SP
2º SEMESTRE/2011
MANUEL AFONSO DE LAVA GRANJEIA
DESENVOLVIMENTO DE UMA APLICAÇÃO WEB PARA PEQUENOS
ESCRITÓRIOS DE ADVOCACIA, COMBINADO COM USO DE DISPOSITIVO
MÓVEL
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins, 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. João Luís Cardoso de Moraes.
Data de aprovação: 14/ 12 /2011
____________________________________________
Orientador (Prof. Me. João Luís Cardoso de Moraes )
____________________________________
Profª Me. Gisele Molina Becari
_____________________________________
Prof. Me. Júlio Fernando Lieira
A Deus, à minha família e aos professores
Me. João Luís Cardoso de Mores e Ygor
Gonzaga de Oliveira.
AGRADECIMENTOS
Primeiramente, agradeço a Deus, Nossa Senhora Auxiliadora e São João
Bosco por ter chegado até aqui.
Aproveito o ensejo para manifestar minha gratidão à minha família e a todos
os envolvidos na produção deste trabalho.
Quanto à equipe da FATEC LINS, reconheço o esforço para que os alunos
tivessem
um
curso
de
qualidade.
Todos
foram
muito
importantes,
independentemente de sua função.
Por fim, jamais me esquecerei dos amigos que conquistei durante três anos
nas tardes quentes de Lins e do apoio recebido de meu orientador, Prof. Me. João
Luís Cardoso de Moraes, o qual desempenhou brilhantemente seu mister e
daqueles que contribuíram indiretamente: Prof. Me. Mario Henrique S. Pardo, Prof.
Me. Fábio Lúcio Meira e Prof. Ygor Gonzaga de Oliveira, Profª Mª Adriana de Bortoli,
Prof. Me. Júlio Fernando Lieira, Prof. Me. Adriano de Souza Marques, Prof. Me.
Alexandre Ponce de Oliveira, Prof. Me. Anderson Pazin, Prof. Me. Luiz Fernando de
Oliveira Silva, Profª Mª Gisele Molina Becari, Prof. Dr. Luciano Soares de Souza e
Letícia Raquel, minha irmã.
RESUMO
A informática chegou aos setores mais conservadores e tradicionais da
sociedade, inclusive o Direito, marcado por grandes pilhas de papel. Ela pode
contribuir muito para o aperfeiçoamento do sistema jurídico, principalmente com a
Internet, porque proporciona mobilidade ao processo e com isso os profissionais do
fórum podem investir o tempo que gastariam atendendo advogados para dar
andamento aos processos. Pequenos escritórios de advocacia podem utilizar a
tecnologia disponível, com enfoque no aperfeiçoamento de suas atividades de
advogado, pois ele não precisará mais estar fisicamente em seu escritório para
saber o que acontece. Este trabalho objetiva o desenvolvimento de uma solução
web para escritórios de advocacia, com enfoque na utilização das tecnologias
envolvidas, no sentido de contribuir para a melhora de seus processos rotineiros,
principalmente a composição da procuração “ad juditia” e relatórios, evitando erros
de digitação e consumo de tempo para escrita de documentos. A pesquisa de
compromissos é realizada por meio de um dispositivo móvel conectado à Internet,
em que o advogado informará seu código e a data para receber a listagem de
compromissos na tela do aparelho. Foram utilizadas as seguintes tecnologias: Java
Server Faces (JSF), Hibernate, Model Views Controller (MVC), Java Enterprise
Editition (Java EE) e Java Micro Edition (Java ME), Oracle 10g, JDBC e IReports.
Palavras-chave: Escritórios Advocacia. Dispositivo móvel.
ABSTRACT
Informatics has come to the more conservative and traditional departments of
the society, including Law, marked by large stacks of paper. It can contribute greatly
to improving the legal system, mainly with the Internet, because it provides mobility to
the process and with it the court house professionals might invest their time on
attending lawyers and coursing processes. Small law firms can use the available
technology, focusing on the improvement of the lawyer’s activities, because he will
no longer need to be physically in his office to know what happens. This work aims to
develop a web solution for law firms, focusing on the use of the technologies, to
contribute to the improvement of their routine processes, especially the composition
of "ad juditia” mandate and reports, avoiding typing mistakes and waste of time for
writing documents. The research commitment is accomplished through a mobile
device connected to the Internet, in which the lawyer informs his code and date to
receive a list of commitments on the screen of the device. The following technologies
were used: Java Server Faces (JSF), Hibernate, Model Views Controller (MVC),
Editition Java Enterprise (Java EE) and Java Micro Edition (Java ME), Oracle 10g,
JDBC and iReports
Keywords: Law Offices. Mobile device.
LISTA DE ILUSTRAÇÕES
Figura 1.1 - Plataforma Java ..................................................................................... 20
Figura 1.2 - Java Micro Edition .................................................................................. 23
Figura 1.3 - API JDBC. .............................................................................................. 25
Figura 2.1 - Caso de uso cadastrar advogado. ......................................................... 43
Figura 2.2 - Caso de uso cadastrar secretária. ......................................................... 44
Figura 2.3 - Caso de uso cadastrar cliente. ............................................................... 46
Figura 2.4 - Caso de uso cadastrar processo............................................................ 47
Figura 2.5 - Caso de uso relacionar clientes processos e advogados. ..................... 48
Figura 2.6 - Caso de uso cadastrar procuração. ....................................................... 49
Figura 2.7 - Caso de uso cadastrar andamento processual. ..................................... 49
Figura 2.8 - Caso de uso agendar consulta .............................................................. 51
Figura 2.9 - Caso de uso compor procuração “ad juditia”. ........................................ 52
Figura 2.10 - Caso de uso cadastrar contrato de honorários advocatícios. .............. 53
Figura 2.11 - Caso de uso relacionar contratos e advogados. .................................. 54
Figura 2.12 - Caso de uso gerarRelConsAdv. ........................................................... 55
Figura 2.13 - Caso de uso buscar cliente. ................................................................. 56
Figura 2.14 - Caso de uso buscar secretária............................................................. 57
Figura 2.15 - Caso de uso buscar procuração “ad juditia”. ........................................ 58
Figura 2.16 - Caso de uso listar compromissos. ....................................................... 59
Figura 2.17 - Caso de uso gerar relatório geral de agendamentos ........................... 60
Figura 2.18 - Caso de uso gerar relatório de andamentos do processo. ................... 61
Figura 2.19 - Caso de uso gerar relatório de processos por cliente. ......................... 62
Figura 2.20 - Caso de uso buscar contrato. .............................................................. 63
Figura 2.21 – Diagrama de classes ........................................................................... 64
Figura 2.23 – Diagrama de estrutura de dados completo. ........................................ 66
Figura 2.25 – Diagrama de estrutura de dados parcial: agendamento. ..................... 68
Figura 2.26 – Diagrama de estrutura de dados parcial: cadastro de contratos. ........ 69
Figura 2.27 – Diagrama de estrutura de dados parcial: processos. .......................... 70
Figura 2.28 – Diagrama de estrutura de dados parcial: cadastro de procurações. ... 71
Figura 2.29 - Diagrama de atividade cadastrar advogado. ........................................ 72
Figura 2.30 - Diagrama de atividade cadastrar secretária. ........................................ 73
Figura 2.31- Diagrama de atividade cadastrar cliente ............................................... 74
Figura 2.33 - Diagrama de atividade clientes advogados e processos. .................... 76
Figura 2.34 - Diagrama de atividade cadastrar procuração. ..................................... 77
Figura 2.35 - Diagrama de atividade cadastrar andamento. ..................................... 78
Figura 2.36 - Diagrama de atividade agendar consultas. .......................................... 79
Figura 2.37 - Diagrama de atividade compor procuração “ad juditia”. ....................... 80
Figura 2.38 - Diagrama de atividade cadastrar contrato. .......................................... 81
Figura 2.39 - Diagrama de atividade advogados e contratos. ................................... 82
Figura 2.40 - Diagrama de atividade relatório de consultas por advogado. .............. 83
Figura 2.41 - Diagrama de atividade buscar cliente. ................................................. 83
Figura 2.42 - Diagrama de atividade buscar secretária. ............................................ 84
Figura 2.43 - Diagrama de atividade buscar procuração “ad juditia”, ........................ 84
Figura 2.44 - Diagrama de atividade listar compromissos. ........................................ 85
Figura 2.45 - Diagrama de atividade gerar relatório geral de agendamentos. .......... 85
Figura 2.46 - Diagrama de atividade relatório de andamentos do processo. ............ 86
Figura 2.47 - Diagrama de atividade relatório de processos por cliente. ................... 86
Figura 2.48 - Diagrama de atividade buscar contrato. ............................................... 87
Figura 2.49 – Diagrama MVC cadastrar advogado. .................................................. 88
Figura 2.51 - Diagrama MVC cadastrar cliente. ........................................................ 90
Figura 2.52 - Diagrama MVC cadastrar processo. .................................................... 91
Figura 2.53 - Diagrama MVC relacionar clientes, advogados e processos. .............. 92
Figura 2.54 - Diagrama MVC cadastrar procuração “ad juditia”. ............................... 93
Figura 2.55 - Diagrama MVC cadastrar andamentos. ............................................... 94
Figura 2.56 - Diagrama MVC agendar consulta. ....................................................... 95
Figura 2.57 - Diagrama MVC compor procuração “ad juditia”. .................................. 96
Figura 2.58 - Diagrama MVC cadastrar contrato. ...................................................... 97
Figura 2.59 - Diagrama MVC relacionar advogados e contratos. .............................. 98
Figura 2.60 - Diagrama MVC gerar relatório de consultas por advogado. ................ 98
Figura 2.61 - Diagrama MVC buscar cliente.............................................................. 99
Figura 2.62 - Diagrama MVC buscar secretária. ..................................................... 100
Figura 2.63 - Diagrama MVC buscar procuração “ad juditia”. ................................. 100
Figura 2.64 - Diagrama MVC listar agendamentos. ................................................ 101
Figura 2.65 - Diagrama MVC relatório geral de agendamentos. ............................. 102
Figura 2.66 - Diagrama MVC relatório de andamentos por processo. .................... 102
Figura 2.67 - Diagrama MVC relatório de processos por cliente. ............................ 103
Figura 2.68 - Diagrama MVC buscar contrato. ........................................................ 104
Figura 2.69 - Diagrama de sequência cadastrar advogado. .................................... 104
Figura 2.71 - Diagrama de sequência cadastrar cliente. ......................................... 105
Figura 2.72 - Diagrama de sequência cadastrar processo. ..................................... 106
Figura 2.73 - Diagrama de sequência clientes, processos e advogados. ............... 106
Figura 2.74 - Diagrama de sequência cadastrar procuração. ................................. 107
Figura 2.75 - Diagrama de sequência cadastrar andamento. ................................. 107
Figura 2.76 - Diagrama de sequência agendar consultas. ...................................... 108
Figura 2.77 - Diagrama de sequência compor procuração “ad juditia”. ................... 108
Figura 2.78 - Diagrama de sequência cadastrar contrato. ...................................... 109
Figura 2.79 - Diagrama de sequência relacionar contratos e advogados. .............. 109
Figura 2.80 - Diagrama de sequência relatório de consultas por advogado. .......... 110
Figura 2.81 - Diagrama de sequência buscar cliente. ............................................. 110
Figura 2.82 - Diagrama de sequência buscar secretária. ........................................ 111
Figura 2.83 - Diagrama de sequência buscar procuração “ad juditia”. .................... 111
Figura 2.84 - Diagrama de sequência listar agendamentos. ................................... 112
Figura 2.85 - Diagrama de sequência relatório geral de agendamentos. ................ 112
Figura 2.86 - Diagrama de sequência relatório de andamentos por processo. ....... 113
Figura 2.87 - Diagrama de sequência relatório de processos por cliente. ............... 113
Figura 2.88 - Diagrama de sequência buscar contrato. ........................................... 114
Figura 3.1 - Estrutura da tabela de processos......................................................... 115
Figura 3.2 - Servlet responsável por receber os parâmetros do aplicativo móvel,
realizar a consulta no banco de dados e retornar os resultados. ............................ 116
Figura 3.3 - Consulta de compromissos e resultados obtidos. ................................ 117
Figura 3.4 - Página JSF antes da configuração do idioma. ..................................... 118
Figura 3.5 - Visão básica da página principal. ......................................................... 119
Figura 3.6 - Página JSF responsável pelo controle de agendamentos. .................. 120
Figura 3.7 - Cadastro de compromissos. ................................................................ 121
Figura 3.8 - Sintaxe SQL para obtenção dos dados do cliente e do advogado. ...... 121
Figura 3.9 - Configuração do empacotamento. ....................................................... 122
Figura 3.10 - Montagem da procuração “Ad Juditia” no NetBeans.......................... 123
Figura 3.11 - Formulário da procuração cível (pagina JSP) .................................... 124
Figura 3.12 - Servlet responsável por enviar dados para composição da procuração.
................................................................................................................................ 124
Figura 3.13 - Procuração “Ad Juditia” Cível composta de acordo com os parâmetros
fornecidos pela página JSP. .................................................................................... 125
LISTA DE QUADROS
Quadro 1. Necessidades e prioridades......................................................................40
Quadro 2. Casos de uso............................................................................................40
LISTA DE ABREVIATURAS E SIGLAS
AC - Ação Cautelar
ADC - Ação Direta de Inconstitucionalidade
ADI - Ação Direta de Inconstitucionalidade
ADO – Ação Direta de Inconstitucionalidade por Omissão
ADPF - Ação de Descumprimento de Preceito Fundamental
AJAX - Asynchronous Javascript And Xml
API - Application Programming Interface
AR - Ação Rescisória
CDC - Connected Device Configuration
CLDC - Connected Limited Device Configuration
CRUD - Create, Retrieve, Update and Delete
CVM - Compact Virtual Machine
CVS - Concurrent Version System
EJB - Enterprise Java Beans
HC - Habeas Corpus
HTML - Hypertext Markup Language
HTTP – Hypertext Transfer Protocol
IDE - Integrated Development Environment
IrDA - Infrared Data Association
JCP - Java Community Process
JDBC - Java Database Connectivity
Java EE - Java Enterprise Editition
Java ME - Java Micro Edition
JNI - Java Native Interface
JPA - Java Persistence API
JRE - Java Runtime Environment
JSDK - Java Software Development Kit
Java SE - Java Standard Edition
JSF- Java Server Faces
JSP - Java Server Pages
JSR - Java Specification Request
JVM - Java Virtual Machine
JVMDI - Java Virtual Machine Debugging Interface
MI - Mandado de Injunção
MIDP - Mobile Information Device Profile
MS - Mandado de Segurança
MVC - Model View Controler
OAB - Ordem dos Advogados do Brasil
ORM - Object-relational Mapping
PDA - Personal Digital Assistants
PDF – Portable Data Format
PJOs - Plain Old Java Objects
PSV - Proposta de Súmula Vinculante
RCL - Reclamação
RMI - Remote Method Invocation
ROM - Read Only Memory
SGBD - Sistema Gerenciador de Banco de Dados
SL - Suspensão de Liminar
SQL - Structured Query Language
SS - Suspensão de Segurança
STA - Suspensão de Tutela Antecipada
STF - Supremo Tribunal Federal
UML - Unified Modeling Language
VSS -Visual SourceSafe
WLAN - Wireless Local Area Network
WMAN - Wireless Metropolitan Area Network
WPAN - Wireless Personal Area Network
WSD - Web Services Developers
WWAN - Wireless Wide Area Network
XML - Extensible Markup Language
LISTA DE SÍMBOLOS
% - Porcentagem
@ - Arroba
§ - Parágrafo
SUMÁRIO
AGRADECIMENTOS .................................................................................................. 5
1 TECNOLOGIAS UTILIZADAS ................................................................................ 19
1.1 Java ..................................................................................................................... 19
1.1.1 Java ME ........................................................................................................ 21
1.1.2 Persistência de Dados em Java ................................................................... 24
1.2 COMUNICAÇÃO SEM FIO ................................................................................. 29
1.3 Integrated Development Environment (IDE) ........................................................ 31
1.4 JAVA SERVER FACES (JSF) ............................................................................ 33
1.5 Documentos em pdf ............................................................................................ 34
1.6 oracle 10g............................................................................................................ 34
1.7 DO ADVOGADO E DA SOCIEDADE DE ADVOGADOS .................................... 35
1.8 Da procuração “Ad Juditia” .................................................................................. 36
2 ANÁLISE E PROJETO DE SISTEMA .................................................................... 37
2.1 ANÁLISE DE NEGÓCIO ..................................................................................... 37
2.1.1 Instrução do problema .................................................................................. 37
2.1.2 Atores Envolvidos no Processo .................................................................... 38
2.1.3 Descrição do Ambiente Atual ........................................................................ 38
2.2 Visão Geral do Produto ....................................................................................... 39
2.2.1 Perspectiva do Produto (Análise de Mercado) .............................................. 39
2.2.3 Características .............................................................................................. 39
2.3 ANÁLISE DE REQUISITOS............................................................................. 40
2.3.1 Análise de Requisitos Funcionais ................................................................. 40
2.3.1.2 Diagrama de classes ................................................................................. 64
2.4.1.2 Mapeamento para Modelo Relacional e Projeto Físico.............................. 66
2.4.3 Diagrama de Atividades ................................................................................ 72
2.4.4 MVC .............................................................................................................. 88
2.4.5 Diagrama de Sequência ............................................................................. 104
3 IMPLEMENTAÇÃO E TESTES ........................................................................... 115
3.1 Oracle 10g ......................................................................................................... 115
3.2 Implementação JAVAME................................................................................... 115
3.3 Aplicação web ................................................................................................... 118
3.4 Considerações finais ........................................................................................ 125
17
INTRODUÇÃO
O advogado, conhecido pelo formalismo e pelo excelente domínio do
vernáculo bem articulado com suas principais ferramentas: a fala e a escrita, no
presente século viu-se obrigado a interagir com a moderna Ciência da Informática. O
que existia nessa área há alguns anos e era artigo de luxo e sofisticação tornou-se
instrumento fundamental para exercício de sua nobre tarefa de contribuir para que
haja Justiça, assim como preceitua nossa Carta Magna em seu artigo 133, que
ressalta a importância de tal profissional à administração da justiça.
Os meios eletrônicos de comunicação ganham cada vez mais destaque no
mundo jurídico. O processo digital já é realidade e tem feito com que entidades de
classe, como a Ordem dos Advogados do Brasil (OAB), invistam em treinamento
tecnológico, considerando seu grandioso mérito, sendo que o analfabeto digital
enfrenta grandes dificuldades até para situações corriqueiras, por exemplo, para
fazer sua Declaração de Imposto de Renda. Neste contexto, percebe-se a extrema
importância do assunto, tanto que o Supremo Tribunal Federal (STF), guardião da
Constituição e instância jurisdicional máxima do Brasil possui uma lista do que
somente pode ser julgado se for apresentado eletronicamente, conforme trecho a
seguir:
No Supremo, 14 classes processuais só são aceitas em meio
eletrônico. São elas: ação direta de inconstitucionalidade (ADI),
arguição de descumprimento de preceito fundamental (ADPF), ação
direta de inconstitucionalidade por omissão (ADO), ação direta de
constitucionalidade (ADC), reclamação (RCL), proposta de súmula
vinculante (PSV), ação cautelar (AC), ação rescisória (AR), mandado
de segurança (MS), mandado de injunção (MI), suspensão de liminar
(SL), suspensão de segurança (SS), suspensão de tutela antecipada
(STA), e habeas corpus (HC). Este último, quando não foi impetrado
por advogado, será recebido em papel. (NUNES, 2010, p.16)
Com toda essa inovação tecnológica atuando em setores tão tradicionais o
escritório do advogado não pode ficar alheio a essas mudanças, funcionando com
grandes arquivos de metal, repletos de pastas e agendas, para controlar o
andamento dos processos, audiências e o atendimento de seus clientes.
Definitivamente, isso não faz muito sentido devido ao acesso às tecnologias para
aperfeiçoamento e portabilidade de suas funções.
Este trabalho objetiva o desenvolvimento de um sistema web básico e
genérico capaz de gerenciar um pequeno escritório de advogados, integrando
18
cadastro de funcionários, advogados, clientes, andamento de processos, bem como
os compromissos de cada profissional, além da emissão de relatórios pertinentes e
composição da procuração “ad juditia”. Para complementar, o advogado poderá
consultar seus afazeres diários através de seu celular, tudo com enfoque na
integração de tecnologias. Para isto, utilizar-se-á o banco de dados Oracle 10g,
Integrated Development Environment (IDE) NetBeans 6.9.1, Java Server Pages
(JSP), Servlets, Java Script, Java Server Faces (JSF), Java Micro Edition (Java
ME), Unified Modeling Language (UML), juntamente com o padrão Model – View –
Controler (MVC) e HyperText Markup Language (HTML) através do Microsoft Office
SharePoint Designer 2007.
Destarte, pode-se ressaltar que o profissional do direito não pode ficar alheio
a esses aspectos tecnológicos, mas utilizá-los para aprimorar seu labor, de modo
que seu escritório também esteja disponível virtualmente, possibilitando, de certa
forma, seu acesso em qualquer lugar do mundo, bastando simplesmente a utilização
da conexão com a Internet.
19
1 TECNOLOGIAS UTILIZADAS
1.1 JAVA
O Java possui uma grande vantagem em relação a outras linguagens pelo
fato de ser interpretado e compilado. Um programa em C para ser executado precisa
que seu compilador gere o seu respectivo arquivo executável e deve existir um
arquivo desse diferente para cada sistema operacional, o que muito dificulta a
portabilidade.
Em um programa feito em Java, ainda que sem utilizar os poderosos recursos
da orientação a objetos, em vez de gerar um simples arquivo executável, seu
compilador gera um bytecode, que pode ser entendido como uma linguagem
intermediária entre a de alto nível e a de máquina. Para fazer funcionar, basta que o
dispositivo tenha a versão compatível com o sistema operacional em uso da Java
Virtual Machine (JVM), o que é capaz de interpretar o bytecode, sem a necessidade
de utilizar um compilador diferente para cada sistema operacional que for necessário
utilizar a aplicação. Dessa forma, o programa é eficiente porque é compilado e
funciona em múltiplas plataformas porque é interpretado. Insta salientar que é
necessário utilizar para compilar a aplicação o pacote Java destinado a cada
categoria de equipamento.
Após essa breve introdução acerca do funcionamento da linguagem, é mister
conhecer, ainda que de forma sucinta, suas siglas e a organização estrutural,
dividida em três tipos de pacotes, sendo eles:
Java Standard Edition (Java SE): trata-se da versão inicial, voltada ao
desenvolvimento de grande parte das aplicações desktop.
Java Enterprise Editition (Java EE): atua para desenvolver aplicações de
grande porte, que necessitam do uso de Enterprise Java Beans (EJB), além de
servidores de aplicação. Este pacote disponibiliza um recurso muito utilizado quando
o assunto é programação web, principalmente, se utilizado o padrão MVC, o Servlet.
Java Micro Edition (Java ME): a escassez de recursos, geralmente, são
dispositivos móveis. Tal pacote será melhor explorado em um tópico específico,
20
devido a sua importância para este trabalho. A imagem logo abaixo mostra a
destinação de cada versão Java.
Figura 1.1 - Plataforma Java
Fonte: SOUZA, 2010, p. 7
Terminados os padrões, é chegada a hora de compreender outros conceitos
de extrema importância quando o assunto é Java:
Java Virtual Machine (JVM): conhecida simplesmente por Máquina Virtual, é
ela a responsável por interpretar o bytecode que outrora fora compilado para uma
linguagem intermediária entre o alto e o baixo nível, o já citado bytecode. Para
acelerar e execução, a JVM pode compilar pequenos trechos do programa. Esse
recurso é chamado de just in time compiler.
Application Programming Interface (API): é a interface que faz a interação
entre o aplicativo e a programação, ou seja, são instruções e padrões de
programação para possibilitar o acesso de um aplicativo.
Java Software Development Kit (JSDK): mais conhecido por JDK, é um
conjunto composto pela maquina virtual, compilador e appletviewer, com a função de
executar applets e as famosas bibliotecas básicas da linguagem Java.
Java Runtime Environment (JRE): resume-se, basicamente, à maquina virtual
do Java, não sendo capaz, por si só, de compilar um programa.
Java Community Process (JCP): trata-se de uma organização internacional,
composta por desenvolvedores e fabricantes, cujo objetivo principal é aperfeiçoar a
linguagem Java.
21
Java Specification Request (JSR): são intenções de alterações e novas
implementações. É a parte documental para que sejam propostas modificações.
Servlet: é comumente utilizado para criação de páginas web dinâmicas,
aumentando as funcionalidades da camada servidora. Para isso, utiliza-se de um
modelo de programação request/response, ou seja, solicitação e resposta. Se for
considerado o padrão MVC, faz o papel do controlador.
Web Services Developers Pack (WSDP): contempla as ferramentas e integra
as APIs para o desenvolvimento web e Servlets.
Java Server Pages (JSP): é uma proposta baseada em Java importantíssimo
quando o assunto é desenvolvimento web. É uma linguagem de scripts muito
semelhante ao PHP, porém, é transferida para Java puro no instante de execução.
1.1.1 Java ME
Os dispositivos móveis ganham cada vez mais destaque no mercado mundial.
Até mesmo o que era puramente mecânico há alguns anos, por exemplo, uma
máquina de lavar roupas, atualmente possui um microdispositivo controlador e, na
maioria das vezes, a linguagem utilizada é o Java, porém, na versão Java ME que
tem um enfoque em equipamentos que dispõem de poucos recursos de memória,
processamento e energia. (PALUDO, 2003)
“A plataforma Java ME foi criada pela Sun™ Microsystems, para permitir o
uso de Java em dispositivos com recursos limitados. Ela envolveu o uso de um
subconjunto da linguagem Java, que continua sendo Java, mas com a eliminação de
uma série de funcionalidades (...).” (BORGES, 2004)
A plataforma acima citada subdivide-se em duas categorias, sendo que uma
tem relação com aparelhos que possuem um pouco mais de recurso, como
televisores. Já a outra é voltada para dispositivos móveis como celulares e
smartphones, sempre levando em conta suas particularidades.
Connected Device Configuration (CDC) é a configuração que atente aos
dispositivos com uma quantidade levemente maior de recursos, por exemplo, set-top
boxes e sistemas de navegação para carros. Devido ao fato desses equipamentos
22
possuírem maior poder de processamento, a CDC atua com um conjunto compatível
com a plataforma Java SE, inclusive uma versão de sua máquina virtual chamada de
Compact Virtual Machine (CVM). Com isso, ela consegue oferecer os seguintes
recursos: portabilidade, suporte nativo a processos, rápida sincronização, execução
de classes Java fora da memória Read Only Memory (ROM), classe de acesso
remoto pequenas, suporte para sistemas operacionais de tempo real, suporte as
seguintes características de Java SE: segurança, Java Native Interface (JNI),
Remote Method Invocation (RMI), Java Virtual Machine Debugging Interface (JVMDI)
e weakreferences (objetos recentemente utilizados). (VIANA, 2011)
A outra opção é a Connected Limited Device Configuration (CLDC), muito
utilizada em celulares e computadores de mão, tem a responsabilidade de atuar em
quesitos essenciais como redes, entrada e saída, internacionalização e as
bibliotecas do núcleo Java (java.lang, java.util). Suas raízes estão em um padrão
menos limitado, o CDC. O objetivo desse padrão é a programação de aplicações e
não do sistema. Devido a isso, o desenvolvedor estará plenamente voltado para sua
aplicação, não se preocupando em qual equipamento vai funcionar. Tal categoria do
Java ME possui uma grande preocupação com segurança, utilizando-se camadas
especializadas: baixo nível, nível de aplicação e fim a fim. A primeira trata da
qualidade da semântica e para que nenhum código mal-intencionado cause falhas
na máquina virtual. No setor de nível de aplicação, controla tudo que ela pode
acessar, desde bibliotecas a recursos do sistema. Por último, a proteção fim a fim
protege toda a transação até que seja encerrada. (CARNIEL, 2007)
Dentre as implementações do CLDC, há uma biblioteca de comunicação que
merece destaque: Connection Framework. Ela é capaz de fazer conexões com um
site da Internet, servidores e portas de comunicação. (CARNIEL. 2007)
Entretanto, essas duas configurações não são suficientes para suprir todas as
necessidades do ambiente de execução. Para complementá-las existem os perfis
(profiles) que adicionam classes que possibilitam desenvolver aplicações para um
tipo específico de equipamento. Eles permitem a definição da camada de abstração
das APIs necessárias para o programador escrever o código. Sua principal função é
trabalhar para interoperabilidade entre aparelhos de uma mesma categoria.
Os principais perfis para o CLDC são o Mobile Information Device Profile
(MIDP) e o PDA Profile (PDA). O primeiro lida com a comunicação por rede pelo
HTTP 1.1, interface gráfica com o usuário simples e armazenamento local de dados.
23
O segundo, por sua vez, é feito para que as facilidades encontradas em PDAs e
smartphones sejam aproveitadas, principalmente na construção de interfaces
gráficas mais sofisticadas.
Para a CDC, os perfis de destaque são: Fondation, Personal e RMI.
O
Fundadion Profile é responsável por trazer as principais bibliotecas do Java ME. O
Personal Profile está relacionado com as bibliotecas gráficas. O RMI adiciona suas
bibliotecas do Java SE, porém apenas o lado cliente dessa API é suportado.
Por derradeiro, não faz muito sentido falar em Java ME sem citar o MIDlet
(aplicativo para o perfil MIDP). Ele está presente em todas as etapas em todas as
fases do aplicativo, principalmente quando há mudança de um estado para outro do
mesmo. Insta salientar o método
startApp( ), que pode ser implementado pelo
desenvolvedor para que possa tomar atitudes em relação a cada mudança de
estado. (PAULO, 2008)
A figura 1.2 mostra as diferentes aplicações da plataforma Java, com
destaque para Java ME.
Figura 1.2 - Java Micro Edition
Fonte: 3G, 2011.
24
1.1.2 Persistência de Dados em Java
O desenvolvimento de uma aplicação, na maioria das vezes, não está
relacionado simplesmente a processar uma informação inserida pelo usuário, mas
também precisa interagir com uma base de dados. Assim, necessita-se armazenar,
recuperar, alterar e excluir os registros do negócio que o programa gerencia.
A Persistência de dados, por sua vez, está intimamente ligada ao
armazenamento em um banco relacional. No entanto, a linguagem Java está cada
vez mais presente nesses aplicativos que se comunicam com bancos de dados. O
fato de destaque é que Java utiliza o paradigma de orientação a objetos, com várias
diferenças em relação aos tradicionais bancos de dados relacionais. Desse modo, o
desafio é aliar os poderosos recursos da orientação a objetos com a segurança e
confiabilidade
dos
bancos
relacionais,
fazendo
com
que
tudo
funcione
harmonicamente, sendo que as soluções mais utilizadas são o Java Database
Connectivity (JDBC), Hibernate e Java Persistence API (JPA). (KING, 2004)
Porém, antes do estudo dessas tecnologias, é preciso conhecer a ideia do
Mapeamento Objeto-Relacional (ORM) e do Plain Old Java Objects, ou POJOs. O
primeiro, em linhas gerais, tem por objetivo fazer a integração de aplicações
orientadas a objetos com os tradicionais bancos relacionais. Nos casos do Hibernate
e do JPA, isso é feito automaticamente. O segundo é formado por categorias de
objetos Java que apresentam uma forma bem mais modesta, se o referencial for um
framework. (GOUVEA, 2010)
O JDBC é, geralmente, o primeiro contato que os estudantes têm quando o
assunto é persistência de dados em Java. Trata-se de API que possibilita ao
desenvolvedor a conexão com o banco de dados, bem como, a utilização de SQL na
aplicação Java de modo a permitir e realização de consultas e manipulação de
resultados. Em última análise, o JDBC é uma interface implementada pela classe
DriverManager que é responsável por gerenciar as conexões, uma vez que é
compatível com vários drivers, por isso, é possível a conexão com vários SGBDs
sem a necessidade de alterar o código já escrito em Java. Tal interface, embora
comumente seja trabalhada em baixo nível, também está servindo de base para o
25
projeto de outras que atuarão em alto nível para viabilizar o mapeamento de bancos
relacionais direto para classes Java. (LOPES, 2010)
A arquitetura do JDBC tem por finalidades principais ser uma interface
independente e viabilizar o acesso a qualquer Sistema Gerenciador de Banco de
Dados, através de Structured Query Language (SQL). A API JDBC atua nas frentes
de alto e baixo nível. A primeira é utilizada pelos programas para acessar em
primeira instância as funcionalidades oferecidas pelo JDBC. A segunda, por sua vez,
interage com os métodos disponíveis nos drivers JDBC, ou seja, quem efetivamente
faz a conexão com o banco de dados, conforme ilustrado na figura abaixo.
Figura 1.3 - API JDBC.
Fonte: WILSON, 2010.
A imagem logo acima é uma representação da arquitetura JDBC. É
importante destacar a função da classe DriverManager, que é responsável por abrir
a conexão do driver JDBC já registrado. Ao iniciar a comunicação, o DriverManeger
seleciona um driver de uma lista para realizar a conexão, de acordo com a URL
(caminho do BD) especificada. Assim que houve sucesso em sua função, as buscas
de resultados (fetch) e consultas (queries) são feitas propriamente no driver JDBC.
26
Conhecer as classes da API JDBC é de extrema utilidade para o
desenvolvimento do tema, como bem descreve Márcio Pulcinelli:
DriverManager – Passa as requisições de conexão para os drivers
JDBC.
DriverPropertyInfo – Uma instância de propriedades de uma
conexão de um driver JDBC.
Types – Uma lista de constantes simbólicas de tipos de dados SQL
Data uma extensão da classe java.util.Date mais apropriada ao tipo
de dados Date do SQL.
Time – Uma extensão da classe java.util.Date mais apropriada ao
tipo de dados Time do SQL
Timestamp – Uma extensão da classe java.util.Date mais apropriada
ao tipo de dados Timestamp do SQL.
Numeric – Um tipo de dados numérico com maior precisão que
proporciona um conjunto completo de operações aritméticas de
grande precisão; esta classe é apropriada ao tipo de dados Numeric
do SQL.
Driver – Classe através da qual o Driver Manager acessa os drivers
JDBC Connection, efetuando uma conexão ao banco de dados;
através dela, o programador manipula suas consultas e resultados
Statement – Classe que executa comandos SQL simples
PreparedStatement – Classe especializada em manipular comandos
SQL com parâmetros.
CallableStatement – Classe especializada em manipular chamadas
a procedimentos armazenados.
ResultSet – Classe para acessar os resultados obtidos pela
execução de uma consulta SQL.
DatabaseMetaData – Classe usada para acessar uma grande
variedade de informações sobre uma conexão a um banco de dados.
ResultSetMetaData – Classe usada para acessar uma grande
variedade de informações sobre os atributos de um ResultSet.
(PULCINELLI, 2010)
Portando, mesmo sendo uma das maneiras mais simples de fazer a
comunicação entre os aplicativos Java e o banco de dados, o JDBC mostra todos
seus recursos que, bem explorados, são capazes de funcionalidades fantásticas,
embora muitos o considerem uma tecnologia em decadência.
Segundo KING (2004), o Hibernate, também disponível no pacote .Net sob a
nomenclatura de NHibernate, facilita o mapeamento entre os atributos dos objetos e
as tabelas dos bancos de dados relacionais, uma vez que diminui a complexidade
da operação devido ao fato de transformar as classes Java para tabelas SQL
automaticamente. Insta salientar que esse mapeamento pode ser implementado por
arquivos Extensible Markup Language (XML), JSR-220 Persistence Annotation ou
código Java. Sua consagração está diretamente relacionada à sua simplicidade, pois
concentra todo envolvimento no Hibernate Session, como mostra a figura a seguir:
27
Figura 1.4 - Arquitetura Hibernate.
Fonte: DEVMEDIA, 2010.
O ponto de destaque da figura acima fica por conta do Hibernate Session,
uma vez que engloba o conceito do gerenciador de persistência (Persistence
Manager), frequentemente utilizado para operações de inserção, atualização,
consulta e remoção de cada instância de classe mapeada pelo Hibernate.
Já o SessionFactory tem a responsabilidade de compilar e armazenar nas
tabelas. Como o Hibernate conecta-se a vários bancos de dados, precisa-se atender
às solicitações dos mesmos, relacionando com o mapeamento. Essa é outra
finalidade importante do SessionFactory, que é configurado de acordo com o SGBD
que está atuando, portanto, especifica-se cada objeto persistido no banco de dados
28
através de um arquivo XML. Além disso, há três estados que um objeto pode
apresentar no contexto do Hibernate:
Transient: objeto não salvo que ainda está na memória.
Persistent: objeto na cache do SessionFactory que pode ainda não estar
salvo.
Detached: objeto gravado com sucesso no banco de dados.
Desse modo, pode-se afirmar que o Hibernate é uma solução de fácil acesso
e bastante eficaz para integrar objetos a bancos de dados relacionais, uma vez que
é capaz de realizar o mapeamento objeto-relacional e ainda possui excelentes
estruturas para persistência de dados.
O último tópico abordado fica a cargo do moderno JPA. Trata-se de um
framework empregado na camada de persistência que tem por objetivo integrar os
conceitos de orientação a objetos ao modelo relacional, de modo a melhorar o
rendimento do desenvolvedor. Seu funcionamento é simples e rápido, pois todo o
trabalho de mapeamento que o programador teria de efetuar é realizado de forma
automatizada pela API, isso é possível graças ao Java Persistense Metadada, posto
em prática por arquivos XML ou Java annotation, que indica a classe que sofre
persistência, bem como e relação entre seus métodos e a coluna da tabela.
(GOUVEA, 2010)
Em regra, o nome da classe é o mesmo da tabela, assim como cada atributo
equivale a nome da coluna. Todavia, isso pode perfeitamente ser alterado de
maneira bastante simples. Utiliza-se anntotations também para especificar a questão
da cardinalidade, por exemplo: @OneToOne, @OneToMany, @ManyToOne e
@ManyToMany. Isso significa, respectivamente, um para um, um para muitos,
muitos para um e muitos para muitos, ou ainda, o famoso n para n.
O fato curioso fica por conta do JPA utilizar-se do já citado JDBC para efetivar
as operações de persistência, portanto, é necessário escolher um JPA Provider.
Contudo, persistir dados deixou de ser uma tarefa complexa e cansativa
devido a tais ferramentas que muito aperfeiçoam o desempenho do desenvolvedor.
Porém, o conhecimento teórico acerca do mapeamento objeto-relacional em muito
contribui para uma utilização mais avançada dessas tecnologias.
29
1.2 COMUNICAÇÃO SEM FIO
A transferência de dados entre dispositivos eletrônicos, durante muitos anos,
era efetuada apenas por cabos, o que possuía vários inconvenientes, principalmente
a questão da infra-estrutura necessária para acomodar os fios.
Para sanar tal problema, foi desenvolvida a tecnologia wireless que pode ser
entendida como a maneira de transmitir dados à distância entre clientes e servidores
sem o uso de condutores elétricos a uma distância que varia de alguns metros,
como no caso do controle remoto do televisor, até milhões de quilômetros com o
emprego de satélites artificiais. Os dispositivos clientes podem ser bastante
diversificados, desde os tradicionais computadores até os mais avançados celulares.
(VIANA, 2009)
Antes de aprofundar o estudo, é importante entender alguns aspectos físicos
que muito auxiliam a compreensão de como um dado pode sair de um lugar e ir para
o outro sem, ao menos, utilizar um cabo ligando dois pontos. Através do uso de
ondas eletromagnéticas e de infravermelho isso é perfeitamente possível. Ondas
eletromagnéticas, de maneira simples, nada mais são do que campos elétricos e
magnéticos alternados entre si de maneira perpendicular e atingem uma velocidade
muito próxima da luz. Uma vez lançadas, elas permanecem trafegando até que sua
energia se esgote. Todavia, há algumas características acerca de ondas relevantes
para o aprendizado, como comprimento de onda, frequência e amplitude. Tais
aspectos são grandezas físicas, ou seja, podem ser medidos quantitativamente e
sempre são acompanhadas de uma unidade de medida correspondente. (SILVA,
2010)
Frequência é o número de oscilações por unidade de tempo, medida no
Sistema Internacional por Hz.
Comprimento de onda é a distância entre duas cristas, comumente medida
em metros.
Amplitude é a altura da onda entre o ponto mais baixo e o mais alto. Também
utiliza a mesma unidade de medida do comprimento de onda.
Insta salientar que frequência e comprimento de onda são grandezas físicas
inversamente proporcionais, isto significa que se a frequência aumenta, diminui-se o
30
comprimento. Se este aumenta, diminui-se a frequência. Uma onda eletromagnética
propaga-se perfeitamente no vácuo. (SILVA, 2008)
O infravermelho é uma radiação localizada no setor invisível do espectro
eletromagnético, nas proximidades do final vermelho de luz visível, além disso, não
gera ionização e nos vertebrados pode ser percebida na forma de calor, assim como
foi constatado em 1800 por William Herschel.
Nesse contexto, vale lembrar a Infrared Data Association (IrDA), entidade
responsável por estabelecer os padrões para esse tipo de comunicação.
Não há como falar de redes sem fio sem classificá-las, pois agrupar por
semelhanças muito facilita os estudos. Neste quesito não há muita diferença para as
redes convencionais, a não ser o prefixo wireless na frente. Logo abaixo, contam as
principais classificações quanto à área de abrangência.
Wireless Personal Area Network (WPAN) – é projetada para pequenas redes,
geralmente utilizada em conjunto com o Bluetooth.
Wireless Local Area Network (Wireless LAN ou WLAN) - trata-se da conexão
de rede local por ondas eletromagnéticas muito utilizada para compartilhar
informações e acesso à Internet em escritórios, aeroportos, hotéis e similares,
mostrando claramente suas vantagens em relação à rede ADSL convencional.
(SILVA, 2008)
Wireless Metropolitan Area Network (WMAN) faz referência a uma rede
metropolitana que é capaz de atingir no mínimo alguns quilômetros quadrados.
Wireless Wide Area Network (WWAN) é a rede de longo alcance,
geograficamente distribuída, capaz de abranger um país inteiro ou até continentes,
englobando as redes WPAN, WLAN e WMAN. A Internet é um ótimo exemplo.
(WIRELESS, 2010)
Por outro lado, isso não faria sentido sem o trabalho dos protocolos que,
simplificadamente, são a linguagem que os dispositivos utilizam para estabelecer a
comunicação entre si, estão concentrados entre os principais: o Bluetooth e o
802.11, também conhecido por Wi-Fi. É importante ressaltar que são protocolos
complementares, e não concorrentes como muito erroneamente divulgam.
O primeiro, inicialmente, foi projetado para conectar dispositivos em uma
distância não superior a dez metros, sendo muito empregado para conexão de
celulares com computadores e até mesmo com seus próprios acessórios como, por
exemplo, fones de ouvido.
Os dispositivos identificam-se e são capazes de
31
estabelecer pequenas redes, tendo um deles como host. Embora o Bluetooth seja
utilizado em pequenas distâncias, sua grande vantagem é que consome pouca
energia, o que significa uma grande vantagem para sua implementação em
dispositivos móveis que necessitam de um uso muito eficiente de energia para
poupar suas baterias.
Já o protocolo 802.11, mais popularizado em sua versão 802.11b, utiliza o
mesmo espectro de frequência que o Bluetooth, porém a transmissão é feita
valendo-se do direct-sequence spread-spectrum. No princípio, os dados eram
transmitidos a uma taxa de 11 Mbps, mas hoje equipamentos que atuam a 100
Mbps podem facilmente ser encontrados no mercado. No entanto, tal taxa pode cair
por fatores como a distância, ficando em torno de até 5 Mbps, dependendo do
equipamento. A distância média de operação é de cem metros, mas em locais
fechados essa distância cai consideravelmente. Embora possua uma alta taxa de
transmissão e uma distância considerável, possui a desvantagem de consumir
bastante energia em relação ao Bluetooth, o que dificulta seu uso em dispositivos
que precisam garantir uma maior autonomia da bateria. (WIRELESS, 2010)
1.3 INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)
O termo IDE, do inglês Integrated Development Environment, que pode ser
entendido como Ambiente de Desenvolvimento Integrado, constitui-se de um
software com excelentes ferramentas para facilitar os programadores a trabalhar
com os recursos da linguagem e facilitar na digitação e implementação do código.
Na maioria das vezes, uma IDE é basicamente composta por um editor de códigofonte que reconhece as expressões reservadas, um compilador, um depurador e
demais recursos específicos.(OLIVEIRA, 2011)
Encontram-se disponíveis muitos ambientes de desenvolvimento Java, cada
um explorando aquilo que julga ser mais útil. O fato é que a melhor ferramenta é
aquela que a pessoa mais tem conhecimento. Portanto, serão apresentadas
algumas delas.
JCreator: fácil e poderoso. É gratuito em sua versão básica que oferece
principalmente
suporte
para
aplicações
(J2SE).
Para
quem
deseja
mais
32
complementos como complemento da linha de código, preenchimento para
parâmetros, nomes e sintaxe de membros; além de interface avançada para JDBC e
instrumentos para alta produtividade, basta adquirir a versão Pro. (BREGAIDA,
2011)
Gel: pequeno e muito rápido é nativo para Windows e foi escrito em Delphi
por Gerald Nunn. O IDE trabalha com sintaxe para Java, JSP, HTML, XML, C, C++,
Perl, Python e outras. É possível desfazer e refazer ações infinitamente, identação
de bloco, pesquisa por expressão regular e em arquivos. Também oferece suporte
para Concurrent Version System (CVS), Visual Source Safe (VSS) e outros. Faz a
ligação do Java com JSP, possui complemento de código e dicas de métodos das
classes do Java, sem contar os plugins personalizáveis. É gratuito, porém, seu
desenvolvimento não é continuado desde meados de 2004. (BREGAIDA, 2011)
JEdit: um editor de tamanho reduzido. Possui as funcionalidades básicas da
linguagem Java e é escrito nela própria, portanto, funciona em qualquer sistema
operacional que possua a máquina virtual do Java instalado. Chama a atenção o
fato de estar disponível em mais de noventa idiomas. É totalmente gratuito, inclusive
para uso comercial. (BREGAIDA, 2011)
OptimalJ: utiliza uma interface gráfica para o usuário bastante parecida com
a do famoso NetBeans. Além disso, traz recursos muito interessantes e pouco
explorados por outros ambientes, por exemplo, geração de códigos a partir de
diagramas UML, refatoração refinada e ferramentas para análise de desempenho.
Contudo, necessita-se adquirir a licença. (BREGAIDA, 2011)
Eclipse: um dos mais conhecidos ambientes de desenvolvimento quando o
assunto é Java. Trata-se de um projeto de código aberto (opensource) e tem a
finalidade de ser uma plataforma robusta para desenvolvimento comercial que
integra as mais modernas tecnologias, tanto para aplicações locais, até complexos
sistemas web. É capaz de integrar diversas tecnologias, como JSP, MVC, Servlets,
XML, interagindo com containers, por exemplo, o Apache TomCat. Embora o Projeto
Eclipse seja patrocinado pela IBM, conta com a colaboração de importantes
parceiros: Borland, Oracle, OMG, Merant, Novell (SuSE), Red Hat, Sybase, Fujitsu,
entre outros. (BREGAIDA, 2011)
NetBeans: muito bem conceituado entre os desenvolvedores, também é um
projeto de código aberto, repleto de recursos para trabalhar com qualquer tipo de
aplicação. Possui suporte, além do Java, para HTML, C, C++, JSP, entre outros.
33
Existem várias versões gratuitas e comerciais. Integra as tecnologias JSP, XML,
RMI, CORBA, JINI, JDBC e Servlet; suporte a Ant, CVS e outros sistemas de
controle de versão, além de disponibilizar suporte para compiladores e depuradores,
assistentes e ferramentas para geração automática de alguns códigos. (BREGAIDA,
2011)
Intelij IDEA: trate-se de um IDE completo, comercial, com elevado nível de
usabilidade e aproveitamento de códigos. Está disponível para Windows, Linux,
MacOS e Unix. Possui uma interface para edição de arquivos Java, JSP, XML,
HTML. Além disso, trás recurso de autocompletar, identação automática, busca e
substituição, reconhecimento de sintaxe, colocação de parênteses e chaves,
informações sobre classes e métodos do Java, geração automatizada de código,
entre outros. O ponto de destaque fica por conta do refactoring, capaz de renomear
e mover classes, pacotes, métodos, atributos, variáveis locais com atualização
global das referências e parâmetros. (BREGAIDA, 2011)
Sun Java Studio Creator: versão moderna do antigo Projeto Rave. É um IDE
da nova geração e tem por enfoque o desenvolvimento Java Web, principalmente
voltado para Java Server Faces (JSF), possuindo uma interface bastante simples,
bastando, na maioria das vezes, arrastar e soltar para gerar o código. É bastante
semelhante ao .NET da Microsoft. (BREGAIDA, 2011)
1.4 JAVA SERVER FACES (JSF)
O mercado de desenvolvimento cobra cada vez mais qualidade e agilidade de
seus profissionais. Digitar linha por linha do código é muito importante para um
primeiro contato com a informática na graduação, porém perde-se muito em
rendimento. Para sanar essas necessidades, existem os frameworks, também
chamados de ferramentas, capazes de automatizar a geração do código, de modo a
propiciar muita rapidez, por exemplo, o JFS, desenvolvido pela Sun Microsystems
para potencializar o desenvolvimento de aplicações web, principalmente as
dinâmicas.
“Na prática, a utilização de Java Server Faces torna fácil o desenvolvimento
através de componentes de interface de usuário, possibilitando a conexão desses
34
componentes a objetos de negócio de forma simplificada.” (GONÇALVES, 2008,
p.198)
1.5 DOCUMENTOS EM PDF
A tecnologia Portable Data Format (PDF) tornou-se muito utilizada devido a
sua facilidade de visualização e impressão. Por esse motivo, utilizar-se-á um
complemento para IDE NetBeans, denominado JasperReports, capaz de gerar
relatórios com base em consultas a um banco de dados.
O JasperReports é uma biblioteca escrita em Java, cujo o código é
aberto e tem como principal foco facilitar a tarefa dos
desenvolvedores na criação de relatórios para as aplicações tanto
desktop como web, fornecendo uma ferramenta que facilita a
geração dos mesmos, tendo como resultado de saída relatórios no
formato XML, incentivando, assim, a criação de uma ferramenta para
gerar relatórios visuais que foi chamada de IReport, sendo que o
mesmo foi desenvolvido pelo italiano Giulio Toffoli e logo após com a
grande popularização, foi comprada pela JasperSoft para se tornar
ferramenta oficial na construção de relatórios para o JasperReports.
(CASTRO, 2011, p. 24)
1.6 ORACLE 10G
Atualmente, a informação é o bem mais precioso de uma empresa, o que
justifica a importância de um Sistema Gerenciador de Banco de Dados (SGDB)
confiável.
O Oracle 10g é uma opção bastante interessante e dinâmica por ir do básico
ao sofisticado, dentre outras vantagens, assim como comenta Lívia Garcia Alves de
Souza:
Por ser um modelo de banco de dados relacional e ter um grande
potencial de performance, suas principais características são
melhorias de gerenciamento (recursos de auto-ajuste); desempenho
e melhorias de escalabilidade; capacidade de transporte de tabela
para vários tipos de máquina (por exemplo, Windows para Linux);
criptografia transparente de dados; entre outras. (SOUZA, 2011, p.
32)
35
1.7 DO ADVOGADO E DA SOCIEDADE DE ADVOGADOS
“O advogado é indispensável à administração da justiça, sendo inviolável por
seus atos e manifestações no exercício da profissão, nos limites da lei.” (CF, 1988,
p. 99).
O advogado é figura de extrema importância para promoção da Justiça, tanto
que a Carta Magna da República Federativa do Brasil fez questão de explicitá-la em
seu artigo 133.
Nesse contexto, o ordenamento jurídico, especialmente nos termos da lei
federal n° 8.906 de 1994 (Estatuto da Advocacia e da Ordem dos Advogados do
Brasil), assegura privativamente a tal profissional, ressalvadas algumas exceções, o
jus postulandi, ou seja, capacidade postulatória. Evidencia-se, então, a capacidade
exclusiva do advogado representar interesses de terceiros perante o Poder
Judiciário. Desta forma, por intermédio de sua atividade, o cidadão pode encontrar a
tutela jurisdicional, sentido de solucionar os conflitos de interesses qualificados por
uma pretensão resistida, ou de modo mais singelo, os litígios. Resumidamente, em
regra, as pessoas para terem acesso à jurisdição necessitam que seja feito através
de um advogado, devido à já citada capacidade postulatória.
Insta salientar que a legislação brasileira admite, em algumas hipóteses, que
não é preciso o acompanhamento de um advogado para pleitear algo em juízo. O
exemplo clássico é o Habeas Corpus.
Aos advogados é facultado organizarem-se em sociedades, porém existem
algumas características específicas dessa organização reguladas pelo Estatuto da
Advocacia. A sociedade de advogados pode ter natureza de pessoa jurídica ou
sociedade civil de pessoas com o objetivo de prestação de serviços advocatícios.
Ela não pode ser confundida com as demais sociedades civis, uma vez é defeso a
mercantilização da advocacia, bem como a divulgação conjunta com outras
atividades, lucrativas ou não, somente pode ser formada por advogados, dentre
outras restrições previstas na lei. Em nível organizacional, um advogado pode ser
sócio, empregado ou associado, como bem preceitua Haroldo Paranhos Cardella:
O Regulamento Geral introduziu no art. 39 um tipo
intermediário entre o sócio da sociedade e o advogado. É o
advogado associado, que não estabelece qualquer vínculo de
subordinação ou de relação de emprego com a sociedade, mas
36
atua em parceria, recebendo percentual ajustado, ou seja,
utiliza as instalações da sociedade, mas não assume qualquer
responsabilidade social. (CARDELLA, 2005, p. 81)
Destaca-se que o simples fato de advogados reunirem-se em um mesmo
lugar para compartilhar despesas não caracteriza sociedade de advogados, esta
exige todo um trâmite na OAB para ser efetivada. É perfeitamente permitido que
estes profissionais usem recursos em comum, por exemplo, divisão do valor do
aluguel do prédio, do condomínio e, em tempos modernos, um programa de
computador. Tais condutas não infringem nenhuma norma. (CARDELA, 2005)
Independentemente de como esse profissional trabalhe, a informática pode
facilitar muito sua vida, desde o aspecto da segurança até a mobilidade
proporcionada pelos sistemas web.
1.8 DA PROCURAÇÃO “AD JUDITIA”
Procuração é o instrumento, ou seja, um documento especialmente
constituído para comprovar uma relação jurídica.
Tal relação, neste trabalho, de maneira bastante singela, trata-se de um
mandato, ou seja, uma outorga de poderes do cliente para o advogado e como
destina-se para uma representação judicial, faz-se necessário a cláusula “ad juditia”.
Em última análise, nada mais é que um contrato.
O tema contratos, que contempla os mandatos, é muito vasto é não é o
objetivo deste estudo. Portanto, nas linhas acima foram explanados, de maneira
simples, alguns conceitos elementares e relação ao assunto.
37
2 ANÁLISE E PROJETO DE SISTEMA
2.1 ANÁLISE DE NEGÓCIO
2.1.1 Instrução do problema
Os escritórios de advocacia que não são informatizados ficam vinculados às
antigas agendas de papel e os tradicionais formulários manuscritos. Toda vez que o
advogado precisa consultar ou marcar um compromisso necessita ir fisicamente ao
local onde está sua agenda ou, quanto está impossibilitado por qualquer motivo,
pedir que alguém o faça. Além disso, existe a questões da procuração e do contrato
de prestação de serviços advocatícios que precisam ser gerados com base em
dados cadastrais, tanto do cliente quanto do advogado.
Tal problema afeta diretamente o advogado, o cliente e secretária do
escritório. Os dois primeiros são prejudicados com possíveis erros no preenchimento
de formulários que não fazem nenhum tipo de validação de dados e todos sofrem
com a demora para a conferência dos dados todas as vezes que eles forem
utilizados para qualquer fim.
O fato de digitar novamente os dados cadastrais dos envolvidos nos
procedimentos gera vários erros de digitação e imprecisão das informações. De
acordo com a gravidade do equívoco, invalida-se um documento, o que é
extremamente gravoso tanto para o profissional quanto para seu cliente. Aliado a
isso, o advogado não consegue, de certa forma, portabilidade de seu escritório
devido a sua agenda ficar atrelada a um local físico.
Contudo, a implantação do sistema permite sanar tais dificuldades porque os
dados cadastrais dos envolvidos serão digitados e conferidos com cautela apenas
uma vez, além de não mais haver rasuras, bem como trazer ao advogado a
possibilidade de interagir com o sistema de agendamento de compromissos de
qualquer dispositivo com acesso à Internet e consulta simples através de um
aplicativo desenvolvido para seu celular. Tal abordagem reduzirá o fluxo de dados
38
na rede, já que trafegarão apenas as informações da consulta, pois a camada de
visão ficará na aplicação.
2.1.2 Atores Envolvidos no Processo
O sistema atua basicamente com três atores: cliente, advogado e secretária,
cada um com suas responsabilidades.
A secretária é responsável por fazer o atendimento inicial do cliente e
agendamento de compromissos, principalmente as consultas. É também sua função
cadastrar os clientes com os dados pessoais por eles fornecidos e fazer as
atualizações necessárias, podendo também excluir e alterar informações referentes
às consultas.
Ao cliente cabe solicitar agendamento de consultas e conferir se seus dados
cadastrais foram inseridos corretamente no formulário eletrônico.
Por fim, o advogado atua como gerenciador do sistema, tendo amplos
poderes para alterar, incluir e excluir compromissos, dados cadastrais de clientes,
secretárias e advogados, acessar os relatórios de consultas por profissional, emitir a
procuração “ad juditia” e relatórios relevantes. Somente ele terá acesso a consultas
de compromissos via celular.
2.1.3 Descrição do Ambiente Atual
O funcionamento de um pequeno escritório de advocacia, que não é
informatizado, mantém a mesma forma de trabalho há algumas décadas. A obsoleta
agenda de papel continua firmemente em seu mister: recebe as anotações de
consultas e com rasuras guarda as alterações feitas pelo advogado ou pela
secretária. Se o advogado não está no escritório e precisa saber quais serão seus
compromissos para o próximo dia, por exemplo, precisa ir pessoalmente ler os
escritos, ou pedir que alguém gentilmente o faça.
39
Os dados cadastrais dos clientes são anotados em formulários de papel e
sempre que uma alteração precisa ser feita é confeccionado um novo formulário
inserindo novamente todas as informações por quem realizou a atualização.
Quanto os relatórios de quantos atendimentos foram realizados por ano por
cada profissional, é incumbência da secretária fazê-los, analisando as anotações
efetuadas no decorrer desse período.
Outro aspecto de bastante relevância fica por conta da confecção de
documentos que exigem os dados cadastrais, tanto de clientes quanto de
advogados, uma vez que sempre que são utilizados precisam ser digitados
novamente, ou seja, transcritos sempre que o cliente precisar outorgar uma
procuração “ad juditia” ou necessita-se de um contrato de honorários. Após tal
procedimento manual, geralmente realizado pelo advogado, surge o a obrigação de
conferir se os dados não contêm erros de digitação, o que consome um tempo que
poderia ser investido em mais atenção ao cliente.
2.2 VISÃO GERAL DO PRODUTO
2.2.1 Perspectiva do Produto (Análise de Mercado)
O produto em questão tem funcionamento autônomo. Tal afirmativa diz que
ele não faz parte de um sistema, nem recebe informações provenientes de outro
software. Destina-se apenas a solucionar a questão em foco de maneira simples e
eficaz, informatizando tarefas que gastam muito tempo quando feitas pelo modo
tradicional, contendo inconsistências de informações que podem ser resolvidas pela
informática.
2.2.3 Características
Quadro 1 – Necessidades e prioridades.
40
Necessidade
Prioridade
Cadastro de clientes
Alta
Cadastro de advogados
Alta
Cadastro de processos
Alta
Cadastro de compromissos
Alta
Cadastro de secretárias
Alta
Relatório de consultas por advogado
Alta
Expedição de relatório de processos por
Alta
cliente
Expedição da procuração “ad juditia”
Alta
Expedição de relatório de consultas
Alta
Expedição de relatório de andamentos
Alta
do processo.
Listagem de compromissos pelo celular.
Alta
Pesquisas básicas
Média
Fonte: elaborado pelo autor.
2.3 ANÁLISE DE REQUISITOS
2.3.1 Análise de Requisitos Funcionais
LISTA DE EVENTOS
Quadro 2 – Casos de uso.
Letra
Descrição
Evento
Caso de uso
Resposta
A
Advogado solicita
Dados do
Cadastrar
Cadastro,
cadastro
advogado
advogado
msg02
Advogado solicita
Dados da
Cadastrar
Cadastro,
cadastro de
secretária
secretária
Msg11
B
secretária
41
C
D
E
F
Secretária cadastra
Dados do
Cadastrar
Cadastro,
cliente
cliente
cliente
Msg01
Secretária cadastra
Dados do
Cadastrar
Cadastro,
processo
processo
processo
msg05
Advogado relaciona- Dados do
RelacionarCliA
Cadastro,
se com processo e
relaciona-
dvProcesso
msg23
cliente
mento
Advogado solicita o
Dados da
Cadastrar
Cadastro,
cadastro de uma
procuração
procuração
msg25
Advogado solicita o
Dados do
Cadastrar
Cadastro,
cadastro de um
andamento
andamento
msg22
Cliente solicita
Dados do
Agendar
Agendamento,
agendamento de
agendamento
consulta
msg06
Advogado solicita
Número da
Compor
Procuração “ad
procuração “ad
OAB, CPF do
procuração “ad juditia”
juditia”
cliente e
juditia”
procuração “ad
juditia”
G
andamento
H
consulta
I
finalidade
J
K
Advogado solicita
Dados do
Cadastrar
Cadastro,
cadastro de contrato contrato
contrato
msg08
Advogado solicita
Dados do
Relacionar
Cadastro,
relacionamento com
relacionamento contratos e
contrato
Advogado solicita
L
M
N
msg52
advogados
Código do
Gerar relatório
Relatório
relatório individual de advogado
de consultas
individual de
agendamentos
por advogado
agendamento
Buscar cliente
Dados do
Advogado solicita
Nome do
busca de cliente
cliente
Advogado solicita
Nome da
Buscar
Dados da
busca de secretária
secretária
secretária
secretária
cliente
42
O
P
Q
Advogado solicita
Código do
Buscar
Dados da
busca de procuração cliente
Procuração
procuração
Advogado solicita
Código do
Listar
Lista individual
listagem individual
advogado, dia,
Compromissos
de
de agendamentos
mês e ano
compromissos
Advogado solicita
Gerar relatório
Agenda
relatório geral de
geral de
completa de
agendamentos
agendamentos
todos
advogados
R
Advogado solicita
Código do
Gerar relatório
Relatório de
relatório de
processo no
de andamentos andamentos
andamentos do
tribunal
processo
S
Advogado solicita
Código do
Gerar relatório
Relatório de
relatório de
cliente
de processos
processos por
por cliente
cliente
processos por cliente
T
Advogado busca
Código do
contrato
cliente
Buscar contrato Dados do
contrato
Fonte: elaborado pelo autor.
Caso de uso A – Cadastrar advogado
Este caso de uso é responsável pelo cadastro de um advogado.
Curso Normal:
A.1. O advogado solicita cadastro.
A.1.2. O sistema obtém os dados do advogado.
A.1.3. O sistema verifica se o campo Nº OAB está preenchido.
A.1.4. O sistema cria uma instância do advogado e emite msg02 “Advogado
cadastrado!”.
Cursos Alternativos:
43
A.2: O advogado já está cadastrado e deseja-se alterá-lo.
A.2.1. O sistema obtém os dados do advogado.
A.2.2. O sistema verifica se o campo Nº OAB está preenchido.
A.2.3. O sistema atualiza o advogado e emite msg03 “Alteração realizada com
sucesso!”.
A.2.4. Abandonar o caso de uso.
A.3.1. O advogado já está cadastrado e deseja-se excluí-lo.
A.3.2. O sistema exclui o advogado e emite msg04 “Exclusão realizada com
sucesso!”.
A.3.3. Abandonar o caso de uso.
A.4: O campo Nº OAB não está preenchido.
A.4.1. O sistema emite a msg05: “Maybe not null”.
A.4.2: O sistema redireciona-se ao passo A.2.1.
A.4.3. Abandonar o caso de uso.
Figura 2.1 - Caso de uso cadastrar advogado.
Fonte: elaborado pelo autor.
Caso de Uso B – Cadastrar Secretária
44
Este caso de uso é responsável pelo cadastro de uma secretária.
Curso Normal:
B.1. O advogado solicita o cadastro de uma secretária.
B.1.1. O sistema obtém os dados da secretária.
B.1.2. O sistema cria uma instância do da secretária e emite msg11
“Secretária cadastrada com sucesso!”.
Cursos Alternativos:
B.2: A secretária já está cadastrada e deseja-se alterá-la.
B.2.1. O sistema obtém os dados da secretária.
B.2.2. O sistema atualiza o cliente e emite msg03 “Alteração realizada com
sucesso”.
B.2.3. Abandonar o caso de uso.
B.3.1: A secretária já está cadastrada e deseja-se excluí-la.
B.3.2. O sistema exclui a secretária e emite msg04 “Exclusão realizada com
sucesso!”.
B.3.3. Abandonar o caso de uso.
Figura 2.2 - Caso de uso cadastrar secretária.
45
Fonte: elaborado pelo autor.
Caso de Uso C – Cadastrar Cliente
Este caso de uso é responsável pelo cadastro de um cliente.
Curso Normal:
C.1. O cliente solicita cadastro.
C.1.1. O sistema obtém os dados do cliente.
C.1.2. O sistema cria uma instância do cliente e emite msg01 “Cliente
cadastrado com sucesso!”.
Cursos Alternativos:
C.2: O cliente já está cadastrado e deseja-se alterá-lo.
C.2.1. O sistema obtém os dados do cliente.
C.2.2. O sistema atualiza o cliente e emite msg03 “Alteração realizada com
sucesso”.
C.2.3. Abandonar o caso de uso.
C.3.1: O cliente já está cadastrado e deseja-se excluí-lo.
C.3.2. O sistema exclui o cliente e emite msg04 “Exclusão realizada com
sucesso!”.
C.3.3. Abandonar o caso de uso.
46
Figura 2.3 - Caso de uso cadastrar cliente.
Fonte: elaborado pelo autor.
Caso de Uso D – Cadastrar processo
Este caso de uso é responsável pelo cadastro de um processo.
Curso Normal:
D.1. O advogado solicita o cadastro de um processo.
D.1.1. O sistema obtém os dados do processo.
D.1.3. O sistema cria uma instância do processo e emite msg05 “Processo
cadastrado com sucesso”.
Cursos Alternativos:
D.2: O processo já está cadastrado e deseja-se alterá-lo.
D.2.1. O sistema obtém os dados do processo.
D.2.2. O sistema atualiza o processo e emite msg03 “Alteração realizada com
sucesso!”.
D.2.3. Abandonar o caso de uso.
D.3: O processo já está cadastrado e deseja-se excluí-lo.
D.3.1. O sistema exclui o processo e emite msg04 “Exclusão realizada com
sucesso!”.
D.3.2. Abandonar o caso de uso.
47
Figura 2.4 - Caso de uso cadastrar processo.
Fonte: elaborado pelo autor.
Caso de Uso E – Relacionar advogado com processo e cliente
Este caso de uso é responsável pelo relacionamento do advogado com
processo do respectivo cliente.
Curso Normal:
E.1. O advogado solicita o relacionamento com o processo e cliente.
E.1.1. O sistema obtém os dados do relacionamento.
E.1.2. O sistema cria uma instância do processo e emite msg23
“Relacionamento concluído com sucesso”.
Cursos Alternativos:
E.2: O relacionamento já está cadastrado e deseja-se alterá-lo.
E.2.1. O sistema obtém os dados do relacionamento.
E.2.2. O sistema atualiza o processo e emite msg03 “Alteração realizada com
sucesso!”.
E.2.3. Abandonar o caso de uso.
E.3: O relacionamento já está cadastrado e deseja-se excluí-lo.
E.3.1. O sistema exclui o relacionamento e emite msg04 “Exclusão realizada
com sucesso!”.
E.3.2. Abandonar o caso de uso.
48
Figura 2.5 - Caso de uso relacionar clientes processos e advogados.
Fonte: elaborado pelo autor.
Caso de Uso F – Cadastrar Procuração
Este caso de uso é responsável pelo cadastro de uma procuração.
Curso Normal:
F.1. O advogado solicita o cadastro de uma procuração.
F.1.1. O sistema obtém os dados da procuração.
F.1.2. O sistema cria uma instância da procuração e emite msg25
“Procuração cadastrada com sucesso”.
Cursos Alternativos:
F.2: A procuração já está cadastrada e deseja-se alterá-la.
F.2.1. O sistema obtém os dados do procuração.
F.2.2. O sistema atualiza a procuração e emite msg03 “Alteração realizada
com sucesso!”.
F.2.3. Abandonar o caso de uso.
F.3: A procuração já está cadastrado e deseja-se excluí-lo.
F.3.1. O sistema exclui a procuração e emite msg04 “Exclusão realizada com
sucesso!”.
F.3.2. Abandonar o caso de uso.
49
Figura 2.6 - Caso de uso cadastrar procuração.
Fonte: elaborado pelo autor.
Caso de Uso G – Cadastrar andamento
Este caso de uso é responsável pelo cadastro de um andamento processual.
Curso Normal:
G.1. O advogado solicita o cadastro de andamento.
G.1.1. O sistema obtém os dados do andamento.
G.1.3. O sistema cria uma instância do andamento e emite msg22
“Andamento cadastrado com sucesso”.
Cursos Alternativos:
G.2: O andamento já está cadastrado e deseja-se alterá-lo.
G.2.1. O sistema obtém os dados do andamento.
G.2.2. O sistema atualiza o andamento e emite msg03 “Alteração realizada
com sucesso!”.
G.2.3. Abandonar o caso de uso.
G.3: O andamento já está cadastrado e deseja-se excluí-lo.
G.3.1. O sistema exclui o processo e emite msg04 “Exclusão realizada com
sucesso!”.
G.3.2. Abandonar o caso de uso.
Figura 2.7 - Caso de uso cadastrar andamento processual.
50
Fonte: elaborado pelo autor.
Caso de uso H – Agendar consulta
Este caso de uso é responsável por agendar uma consulta.
Curso Normal:
H.1. O cliente solicita o agendamento de uma consulta.
H.1.1. O sistema exibe uma lista com os códigos dos clientes cadastrados.
H.1.2. O sistema exibe uma lista com os códigos dos advogados cadastrados.
H.1.3. O sistema exibe uma lista com os códigos das secretárias cadastradas.
H.1.4. O sistema solicita os demais dados da consulta.
H.1.5. O sistema cria uma instância da consulta e emite msg06 “Consulta
agendada com sucesso!”.
Cursos Alternativos:
H.2: Necessita-se desmarcar a consulta.
H.2.1. O sistema mostra a lista de consultas para os usuário escolher.
H.2.2. O sistema emite a msg04 “Exclusão realizada com sucesso!”.
H..2.3. Abandonar o caso de uso.
H.3. Necessita-se alterar a consulta.
H.3.1. O sistema obtém os dados do da consulta.
H.3.2. O sistema atualiza a consulta e emite msg03 “Alteração realizada com
sucesso!”.
H.3.3. Abandonar o caso de uso.
51
Figura 2.8 - Caso de uso agendar consulta.
Fonte: elaborado pelo autor.
Caso de uso I – Compor procuração “ad jutitia”
Este caso de uso é responsável por compor uma procuração “ad juditia”.
Curso Normal:
I.1: O advogado solicita a composição de uma procuração “ad juditia”
I.1.1. O sistema obtém o CPF do cliente.
I.1.2. O sistema obtém o Nº da OAB do advogado.
I.1.3. O sistema obtém a finalidade da procuração.
I.1.4. O sistema cria uma instância da procuração.
Cursos Alternativos:
I.2: O cliente não está cadastrado.
I.2.2 O sistema emite a msg50 “Cliente não cadastrado”.
I.2.3. Abandonar o caso de uso.
I.3: O advogado não está cadastrado.
I.3.1. O sistema emite a msg51 ”Advogado não cadastrado”.
I.3.3. Abandonar o caso de uso.
52
Figura 2.9 - Caso de uso compor procuração “ad juditia”.
Fonte: elaborado pelo autor.
Caso de uso J – Cadastrar Contrato
Este caso de uso é responsável por cadastrar um contrato de honorários
advocatícios.
Curso Normal:
J.1. O advogado solicita ao sistema o cadastro de um contrato de honorários
advocatícios.
J.1.1. O sistema obtém os dados da do contrato.
J.1.2. O sistema cria uma instância do contrato e emite msg08 “Contrato de
honorários cadastrado com sucesso”.
Cursos Alternativos:
J.2: O contrato já está cadastrado e deseja-se alterá-lo.
J.2.1. O sistema obtém os dados do contrato.
J.2.2. O sistema atualiza o contrato e emite msg03 “Alteração realizada com
sucesso!”.
J.2.3. Abandonar o caso de uso.
J.3: O contrato já está cadastrado e deseja-se excluí-lo.
53
J.3.1. O sistema exclui o contrato e emite msg04 “Exclusão realizada com
sucesso!”.
J.3.2. Abandonar o caso de uso.
Figura 2.10 - Caso de uso cadastrar contrato de honorários advocatícios.
Fonte: elaborado pelo autor.
Caso de Uso K – Relacionar contrato e advogado.
Este caso de uso é responsável pelo relacionamento do advogado com um
contrato.
Curso Normal:
K.1. O advogado solicita o relacionamento com o contrato.
K.1.1. O sistema obtém os dados do relacionamento.
K.1.2. O sistema cria uma instância do processo e emite msg52
“Relacionamento contratual concluído com sucesso”.
Cursos Alternativos:
K.2: O relacionamento já está cadastrado e deseja-se alterá-lo.
K.2.1. O sistema obtém os dados do relacionamento.
K.2.2. O sistema atualiza o processo e emite msg03 “Alteração realizada com
sucesso!”.
54
K.2.3. Abandonar o caso de uso.
K.3: O relacionamento já está cadastrado e deseja-se excluí-lo.
K.3.1. O sistema exclui o relacionamento e emite msg04 “Exclusão realizada
com sucesso!”.
K.3.2. Abandonar o caso de uso.
Figura 2.11 - Caso de uso relacionar contratos e advogados.
Fonte: elaborado pelo autor.
Caso de Uso L – Gerar relatório de consultas realizadas por um advogado
Este caso de uso é responsável por gerar um relatório contendo as consultas
realizadas por um advogado informado.
Curso Normal:
L.1. O advogado solicita relatório de consultas.
L.1.1. O sistema obtém o número da OAB do advogado.
L.1.2. O sistema verifica se o advogado está cadastrado.
L.1.3. O sistema cria uma instância do relatório e emite msg10: “Relatório
gerado com sucesso”.
55
Cursos Alternativos:
L.2: O advogado não está cadastrado
L.2.1. O sistema emite a msg99: “Não cadastrado”.
L.2.2. O sistema redireciona para a interface de cadastro de advogados.
L.2.3. Abandonar o caso de uso.
Figura 2.12 - Caso de uso gerarRelConsAdv.
Fonte: elaborado pelo autor.
Caso de Uso M – Buscar Cliente
Este caso de uso é responsável por pesquisar um cliente por nome.
Curso Normal:
M.1. O advogado solicita a busca de um cliente por nome.
M.1.1. O sistema obtém o nome do cliente.
M.1.2. O sistema exibe todos os dados cadastrais do cliente.
Cursos Alternativos:
M.2: Não existe cliente com o nome fornecido.
M.2.1. O sistema exibe a msg99 “Não encontrado”.
56
M.2.2. Abandonar o caso de uso.
Figura 2.13 - Caso de uso buscar cliente.
Fonte: elaborado pelo autor.
Caso de Uso N – Buscar Secretária
Este caso de uso é responsável por pesquisar uma secretária por nome.
Curso Normal:
N.1. O advogado solicita a busca de uma secretária por nome.
N.1.1. O sistema obtém o nome da secretária.
N.1.2. O sistema exibe todos os dados cadastrais da secretária.
Cursos Alternativos:
N.2: Não existe secretária com o nome fornecido.
N.2.1. O sistema exibe a msg99 “Não encontrado”.
N.2.2. Abandonar o caso de uso.
57
.
Figura 2.14 - Caso de uso buscar secretária.
Fonte: elaborado pelo autor.
Caso de Uso O – Buscar Procuração
Este caso de uso é responsável por pesquisa uma procuração “ad juditia” pelo
código do cliente.
Curso Normal:
O.1. O advogado ou a secretária solicita a busca de uma procuração pelo
código do cliente.
O.1.1. O sistema obtém o código do cliente.
O.1.2. O sistema exibe todos os dados da procuração.
Cursos Alternativos:
O.2: Não existe procuração para o código do cliente fornecido.
O.2.1. O sistema exibe a msg99 “Não encontrado”.
O.2.2. Abandonar o caso de uso.
58
Figura 2.15 - Caso de uso buscar procuração “ad juditia”.
Fonte: elaborado pelo autor.
Caso de Uso P – Listar compromissos
Este caso de uso é responsável por listar os compromissos de um advogado.
Curso Normal:
P.1. O advogado solicita a listagem de seus compromissos.
P.1.1. O sistema obtém o código do advogado, dia, mês e ano.
P.1.2. O sistema exibe todos os compromissos do respectivo advogado para
a data informada.
Cursos Alternativos:
P.2: Não há compromisso para a data informada ou há algum dado incorreto.
P.2.1. O sistema exibe a msg99 “Não encontrado”.
P.2.2. Abandonar o caso de uso.
59
Figura 2.16 - Caso de uso listar compromissos.
Fonte: elaborado pelo autor.
Caso de Uso Q – Relatório de geral de agendamentos
Este caso de uso é responsável por gerar um relatório contendo todos os
agendamentos realizados.
Curso Normal:
Q.1. O advogado solicita o relatório de compromissos agendados.
Q.1.2. O sistema gera e exibe o relatório no formato PDF.
Cursos Alternativos:
Q.2: Não há compromissos.
Q.2.1. O sistema exibe a msg99 “Não encontrado”.
Q.2.2. Abandonar o caso de uso.
60
Figura 2.17 - Caso de uso gerar relatório geral de agendamentos
Fonte: elaborado pelo autor.
Caso de Uso R – Relatório de andamentos por processo
Este caso de uso é responsável por gerar um relatório contendo todos os
andamentos de um processo.
Curso Normal:
R.1. O advogado solicita o relatório de andamentos do processo.
R.1.1. O sistema obtém o código do processo cadastrado no respectivo
tribunal.
R.1.2. O sistema gera e exibe o relatório no formato PDF.
Cursos Alternativos:
R.2: Não há andamentos ou processo não cadastrado.
R.2.1. O sistema exibe a msg99 “Não encontrado”.
R.2.2. Abandonar o caso de uso.
61
Figura 2.18 - Caso de uso gerar relatório de andamentos do processo.
Fonte: elaborado pelo autor.
Caso de Uso S – Gerar relatório de processos por cliente
Este caso de uso é responsável por gerar um relatório contendo todos os
processos de um determinado cliente.
Curso Normal:
S.1. O advogado solicita o relatório de processos por cliente.
S.1.1. O sistema obtém o código do cliente.
S.1.2. O sistema gera e exibe o relatório no formato PDF.
Cursos Alternativos:
S.2: Não há cliente ou processo.
S.2.1. O sistema exibe a msg99 “Não encontrado”.
S.2.2. Abandonar o caso de uso.
62
Figura 2.19 - Caso de uso gerar relatório de processos por cliente.
Fonte: elaborado pelo autor.
Caso de Uso T – Buscar Contrato
Este caso de uso é responsável por buscar um contrato pelo código do
cliente.
Curso Normal:
T.1. O advogado solicita a busca de uma um contrato pelo código do cliente.
T.1.1. O sistema obtém o código do cliente.
T.1.2. O sistema exibe todos os dados do contrato.
Cursos Alternativos:
T.2: Não existe contrato para o código do cliente fornecido.
T.2.1. O sistema exibe a msg99 “Não encontrado”.
T.2.2. Abandonar o caso de uso.
63
Figura 2.20 - Caso de uso buscar contrato.
Fonte: elaborado pelo autor.
64
2.3.1.2 Diagrama de classes
Figura 2.21 – Diagrama de classes
Fonte: elaborado pelo autor.
65
2.4 ANÁLISE E DESIGN
2.4.1 Projeto de Banco de Dados
2.4.1.1 Diagrama de Entidades e Relacionamentos (modelo lógico)
Figura 2.22 - Diagrama de entidades e relacionamentos.
Fonte: elaborado pelo autor.
66
2.4.1.2 Mapeamento para Modelo Relacional e Projeto Físico
Figura 2.23 – Diagrama de estrutura de dados completo.
Fonte: elaborado pelo autor.
67
Figura 2.24 – Diagrama de estrutura de dados compacto.
Fonte: elaborado pelo autor.
68
Figura 2.25 – Diagrama de estrutura de dados parcial: agendamento.
Fonte: elaborado pelo autor.
69
Figura 2.26 – Diagrama de estrutura de dados parcial: cadastro de contratos.
Fonte: elaborado pelo autor.
70
Figura 2.27 – Diagrama de estrutura de dados parcial: processos.
Fonte: elaborado pelo autor.
71
Figura 2.28 – Diagrama de estrutura de dados parcial: cadastro de procurações.
Fonte: elaborado pelo autor.
72
2.4.3 Diagrama de Atividades
Figura 2.29 - Diagrama de atividade cadastrar advogado.
Fonte: elaborado pelo autor.
73
Figura 2.30 - Diagrama de atividade cadastrar secretária.
Fonte: elaborado pelo autor.
74
Figura 2.31- Diagrama de atividade cadastrar cliente
Fonte: elaborado pelo autor.
75
Figura 2.32 - Diagrama de atividade cadastrar processo.
Fonte: elaborado pelo autor.
76
Figura 2.33 - Diagrama de atividade clientes advogados e processos.
Fonte: elaborado pelo autor.
77
Figura 2.34 - Diagrama de atividade cadastrar procuração.
Fonte: elaborado pelo autor.
78
Figura 2.35 - Diagrama de atividade cadastrar andamento.
Fonte: elaborado pelo autor.
79
Figura 2.36 - Diagrama de atividade agendar consultas.
Fonte: elaborado pelo autor.
80
Figura 2.37 - Diagrama de atividade compor procuração “ad juditia”.
Fonte: elaborado pelo autor.
81
Figura 2.38 - Diagrama de atividade cadastrar contrato.
Fonte: elaborado pelo autor.
82
Figura 2.39 - Diagrama de atividade advogados e contratos.
Fonte: elaborado pelo autor.
83
Figura 2.40 - Diagrama de atividade relatório de consultas por advogado.
Fonte: elaborado pelo autor.
Figura 2.41 - Diagrama de atividade buscar cliente.
Fonte: elaborado pelo autor.
84
Figura 2.42 - Diagrama de atividade buscar secretária.
Fonte: elaborado pelo autor.
Figura 2.43 - Diagrama de atividade buscar procuração “ad juditia”,
Fonte: elaborado pelo autor.
85
Figura 2.44 - Diagrama de atividade listar compromissos.
Fonte: elaborado pelo autor.
Figura 2.45 - Diagrama de atividade gerar relatório geral de agendamentos.
Fonte: elaborado pelo autor.
86
Figura 2.46 - Diagrama de atividade relatório de andamentos do processo.
Fonte: elaborado pelo autor.
Figura 2.47 - Diagrama de atividade relatório de processos por cliente.
Fonte: elaborado pelo autor.
87
Figura 2.48 - Diagrama de atividade buscar contrato.
Fonte: elaborado pelo autor.
88
2.4.4 MVC
Figura 2.49 – Diagrama MVC cadastrar advogado.
Fonte: elaborado pelo autor.
89
Figura 2.50 - Diagrama MVC cadastrar secretária.
Fonte: elaborado pelo autor.
90
Figura 2.51 - Diagrama MVC cadastrar cliente.
Fonte: elaborado pelo autor.
91
Figura 2.52 - Diagrama MVC cadastrar processo.
Fonte: elaborado pelo autor.
92
Figura 2.53 - Diagrama MVC relacionar clientes, advogados e processos.
Fonte: elaborado pelo autor.
93
Figura 2.54 - Diagrama MVC cadastrar procuração “ad juditia”.
Fonte: elaborado pelo autor.
94
Figura 2.55 - Diagrama MVC cadastrar andamentos.
Fonte: elaborado pelo autor.
95
Figura 2.56 - Diagrama MVC agendar consulta.
Fonte: elaborado pelo autor.
96
Figura 2.57 - Diagrama MVC compor procuração “ad juditia”.
Fonte: elaborado pelo autor.
97
Figura 2.58 - Diagrama MVC cadastrar contrato.
Fonte: elaborado pelo autor.
98
Figura 2.59 - Diagrama MVC relacionar advogados e contratos.
Fonte: elaborado pelo autor.
Figura 2.60 - Diagrama MVC gerar relatório de consultas por advogado.
Fonte: elaborado pelo autor.
99
Figura 2.61 - Diagrama MVC buscar cliente.
Fonte: elaborado pelo autor.
100
Figura 2.62 - Diagrama MVC buscar secretária.
Fonte: elaborado pelo autor.
Figura 2.63 - Diagrama MVC buscar procuração “ad juditia”.
Fonte: elaborado pelo autor.
101
Figura 2.64 - Diagrama MVC listar agendamentos.
Fonte: elaborado pelo autor.
102
Figura 2.65 - Diagrama MVC relatório geral de agendamentos.
Fonte: elaborado pelo autor.
Figura 2.66 - Diagrama MVC relatório de andamentos por processo.
Fonte: elaborado pelo autor.
103
Figura 2.67 - Diagrama MVC relatório de processos por cliente.
Fonte: elaborado pelo autor.
104
Figura 2.68 - Diagrama MVC buscar contrato.
Fonte: elaborado pelo autor.
2.4.5 Diagrama de Sequência
Figura 2.69 - Diagrama de sequência cadastrar advogado.
Fonte: elaborado pelo autor.
105
Figura 2.70 - Diagrama de sequência cadastrar secretária.
Fonte: elaborado pelo autor.
Figura 2.71 - Diagrama de sequência cadastrar cliente.
Fonte: elaborado pelo autor.
106
Figura 2.72 - Diagrama de sequência cadastrar processo.
Fonte: elaborado pelo autor.
Figura 2.73 - Diagrama de sequência clientes, processos e advogados.
Fonte: elaborado pelo autor.
107
Figura 2.74 - Diagrama de sequência cadastrar procuração.
Fonte: elaborado pelo autor.
Figura 2.75 - Diagrama de sequência cadastrar andamento.
Fonte: elaborado pelo autor.
108
Figura 2.76 - Diagrama de sequência agendar consultas.
Fonte: elaborado pelo autor.
Figura 2.77 - Diagrama de sequência compor procuração “ad juditia”.
Fonte: elaborado pelo autor.
109
Figura 2.78 - Diagrama de sequência cadastrar contrato.
Fonte: elaborado pelo autor.
Figura 2.79 - Diagrama de sequência relacionar contratos e advogados.
Fonte: elaborado pelo autor.
110
Figura 2.80 - Diagrama de sequência relatório de consultas por advogado.
Fonte: elaborado pelo autor.
Figura 2.81 - Diagrama de sequência buscar cliente.
Fonte: elaborado pelo autor.
111
Figura 2.82 - Diagrama de sequência buscar secretária.
Fonte: elaborado pelo autor.
Figura 2.83 - Diagrama de sequência buscar procuração “ad juditia”.
Fonte: elaborado pelo autor.
112
Figura 2.84 - Diagrama de sequência listar agendamentos.
Fonte: elaborado pelo autor.
Figura 2.85 - Diagrama de sequência relatório geral de agendamentos.
Fonte: elaborado pelo autor.
113
Figura 2.86 - Diagrama de sequência relatório de andamentos por processo.
Fonte: elaborado pelo autor.
Figura 2.87 - Diagrama de sequência relatório de processos por cliente.
Fonte: elaborado pelo autor.
114
Figura 2.88 - Diagrama de sequência buscar contrato.
Fonte: elaborado pelo autor.
115
3 IMPLEMENTAÇÃO E TESTES
3.1 ORACLE 10G
Após a conclusão da análise e projeto do sistema, o banco de dados foi
implementado no Sistema Gerenciador de Banco de Dados ORACLE 10g,
juntamente com sequences e triggers.
Figura 3.1 - Estrutura da tabela de processos.
Fonte: elaborado pelo autor.
3.2 IMPLEMENTAÇÃO JAVAME
O passo seguinte foi a utilização do IDE NetBeans para implementar a
aplicação em Java. Dividiu-se a aplicação em três projetos: o servidor que atua junto
com a aplicação móvel, a aplicação para dispositivo móvel e o sistema web
responsável pelo gerenciamento das informações, juntamente com os relatórios.
Nessa etapa, primeiramente optou-se pelo desenvolvimento do servidor que
fica em execução para receber os parâmetros do dispositivo móvel, faz a consulta
no banco de dados e retorna o resultado para o dispositivo móvel. O servidor foi
116
desenvolvido com a base na tecnologia Servlet, já explicada anteriormente. Insta
salientar que a comunicação da aplicação com o servidor é feita através do
protocolo HTTP. Abaixo segue trecho do código implementado nessa classe capaz
de receber os parâmetros, efetuar a consulta e retornar os resultados.
Figura 3.2 - Servlet responsável por receber os parâmetros do aplicativo móvel,
realizar a consulta no banco de dados e retornar os resultados.
Fonte: elaborado pelo autor.
Com o banco de dados e a classe Java responsável por integrá-lo à aplicação
móvel, fez-se necessário produzir uma pequena aplicação com JAVA ME que
funcione em um celular com acesso à Internet para enviar ao servidor acima citado o
código do advogado, o dia, o mês e o ano. Por sua vez, a classe de acesso ao
banco de dados monta a consulta com os parâmetros recebidos e retorna o
resultado diretamente na tela do dispositivo móvel.
A interface gráfica é bastante simples, basta preencher os campos de acordo
com os dados solicitados, que são números inteiros e selecionar a opção “Listar
compr...”, no canto inferior esquerdo na visão do usuário.
117
Note que a consulta somente funcionará se todos os campos estiverem
preenchidos e que os compromissos serão listados em ordem crescente de horário.
O processo pode ser repetido inúmeras vezes, mesmo com a listagem em tela.
Basta selecionar a opção voltar, também no canto inferior esquerdo da tela de
compromissos.
Figura 3.3 - Consulta de compromissos e resultados obtidos.
Fonte: elaborado pelo autor.
Assim, finaliza-se a participação do dispositivo móvel no projeto.
Insta salientar que embora as funcionalidades sejam simples, a ideia principal
é integrar tecnologias. Nessa simples consulta, foram necessários, basicamente, os
seguintes conhecimentos: conexão com banco de dados via JDBC, Servlets,
passagem de parâmetros por referência, MIDlets visuais e protocolo HTTP, um
118
assunto de redes, porém, de extrema importância para a comunicação entre as
aplicações via Internet.
3.3 APLICAÇÃO WEB
Como já explanado em capítulos anteriores, o Java Server Faces implementa
o padrão MVC. No entanto, admite-se uma personalização muito grande. Houve
ajuste no idioma, no rótulo dos campos das tabelas e nas mensagens de erro, de
modo a facilitar a operação pelos usuários. Faz-se isso através dos arquivos
index.xhtml e Bundle.properties .
Figura 3.4 - Página JSF antes da configuração do idioma.
Fonte: elaborado pelo autor.
Quanto ao arquivo index.xhtml, este teve seu código substituído por outro
para tornar a interface gráfica mais amigável ao usuário, embora simples, pois o
projeto não objetiva um trabalho artístico, uma vez que o enfoque reside no
processamento dos dados inseridos pelo usuário.
119
Figura 3.5 - Visão básica da página principal.
Fonte: elaborado pelo autor.
A página principal tem a finalidade de direcionar os usuários para os recursos
desejados, de acordo com o menu, no canto esquerdo.
Por exemplo, com um clique em advogado exibir-se-á a tela que os gerencia
com suas opções principais: inserir, alterar e excluir. A listagem é feita
automaticamente sempre que a página for acessada.
É a partir dessa página que é feito o acesso ao sistema de relatórios.
Também é importante destacar que a aplicação para dispositivo móvel não
acessa a página da figura logo acima, pois possui uma interface própria na aplicação
para reduzir o fluxo de dados na rede.
120
Figura 3.6 - Página JSF responsável pelo controle de agendamentos.
Fonte: elaborado pelo autor.
Para cada funcionalidade que exige um cadastro, o sistema apresenta uma
tela com a mesma estrutura do processo de agendamento, tudo organizado de
modo intuitivo. O campo código do respectivo cadastro não aparece ao usuário, já
que existe um tratamento realizado no banco de dados, através de sequences e
triggers para essa função, ou seja, é gerado automaticamente.
Caso algum campo de preenchimento obrigatório não estiver devidamente
preenchido, o sistema exibirá uma mensagem dizendo o que está errado.
121
Figura 3.7 - Cadastro de compromissos.
Fonte: elaborado pelo autor.
Os relatórios principais do sistema, por exemplo, listagem de processos por
clientes, consultas realizadas por cada advogado e, principalmente, a montagem da
procuração “ad juditia” são compostos em PDF Portable Document Format (PDF)
com o intuito de facilitar a apresentação e também o transporte e a impressão dos
documentos, apesar de que sua elaboração é muito mais custosa para o
desenvolvedor. Implementou-se tal funcionalidade através do plugin, ou seja, do
complemento IReports no NetBeans.
Figura 3.8 - Sintaxe SQL para obtenção dos dados do cliente e do advogado.
Fonte: elaborado pelo autor.
122
As instruções em linguagem SQL de cada relatório foram programadas no
próprio relatório. No entanto, para que ele funcione via web, necessitou-se de uma
arquitetura com três classes: conexão com o banco de dados, configuração do
relatório, e Servlet responsável por trabalhar com os parâmetros recebidos de uma
página JSP e direcioná-los para o relatório específico.
O grande truque dessa ferramenta consiste em uma configuração nas
propriedades do projeto de modo a não permitir a compactação dos arquivos que
contém os relatórios, que são da extensão .jrxml.
Figura 3.9 - Configuração do empacotamento.
Fonte: elaborado pelo autor.
Com as consultas SQL realizadas pela conexão autônoma do plugin e os
parâmetros configurados, a montagem do PDF não tem maiores segredos, restando
a dedicação do programador à continuidade do desenvolvimento dos códigos
necessários à exibição do documento.
123
Figura 3.10 - Montagem da procuração “Ad Juditia” no NetBeans.
Fonte: elaborado pelo autor.
Na página principal existe um menu destinado ao sistema de procurações.
Basta selecioná-lo e escolher algum dos modelos apresentados e preencher os
dados solicitados pelo formulário. No caso em tela, informando apenas o número do
CPF do cliente e o número da OAB do advogado, o sistema consulta via web todos
os demais dados necessários à confecção da procuração no banco de dados
comum para gerar o documento. Por uma questão legal, deve-se informar a
finalidade da procuração, nesse caso, de acordo com o Código de Processo Civil
Brasileiro. Utilizaram-se dados fictícios nos exemplos afim de não expor a
privacidade alheia, mas os formulários estão aptos para o trabalho real.
124
Figura 3.11 - Formulário da procuração cível (pagina JSP).
Fonte: elaborado pelo autor.
Figura 3.12 - Servlet responsável por enviar dados para composição da procuração.
Fonte: elaborado pelo autor.
125
Figura 3.13 - Procuração “Ad Juditia” Cível composta de acordo com os parâmetros
fornecidos pela página JSP.
Fonte: elaborado pelo autor.
3.4 CONSIDERAÇÕES FINAIS
Este capítulo enfatizou as funcionalidades de destaque do projeto, mas
existem pesquisas simples em funcionamento, por exemplo, buscar uma secretária
por nome, um processo por número dentre outras.
Há relatórios implementados de consultas realizadas por advogados,
processos por cliente, agendamentos totais e andamentos de processos. Todos eles
compostos em formato PDF, com os mesmos recursos técnicos utilizados na
procuração “ad juditia”.
126
Em se tratando de um protótipo de sistema, foram apresentadas as
funcionalidades essenciais. Realizou-se uma demonstração prática das tecnologias,
de modo que fique fácil a ampliação de mais recursos do projeto, de acordo com as
necessidades específicas de cada pequeno escritório.
127
CONCLUSÃO
A Tecnologia da Informação efetivamente está presente em todos os setores
da atividade humana, inclusive entre aqueles existentes há milênios. Ela é capaz de
resolver problemas complexos com apenas alguns cliques, portanto, deixa
importante marca na História Mundial.
Com as áreas envolvidas com a Justiça, não poderia ser diferente,
entrementes e sistema jurídico brasileiro, mesmo com todo avanço tecnológico,
ainda dá passos vagarosos na informatização.
Por outro lado, algumas classes processuais, conforme já explanado na
introdução, somente são aceitas por meio eletrônico, o que envolve várias
tecnologias, das quais várias foram implementadas neste projeto.
Outro aspecto relevante é o potencial informacional dos dispositivos móveis
atuais, principalmente dos celulares, uma vez que parcela significativa de seus
usuários não explora todas suas funcionalidades. Sua participação neste trabalho
mostrou-se surpreendente, uma vez que deixou claro aos que acompanharam o
desenvolvimento seu poder computacional e a proximidade do código com a
programação web.
Com relação às tecnologias utilizadas, insta salientar alguns aspectos
relevantes.
O banco de dados Oracle 10g foi bastante estável e interagiu muito bem com
os demais recursos, totalmente compatível com as diversas formas pelas quais foi
acessado: JSF, que utiliza configuração do Hibernate e JPA e método JDBC
tradicional combinado com Servlets na pesquisa via celular e nas buscas feitas pelo
sistema.
A utilização da ferramenta JSF muito facilitou o desenvolvimento das
operações básicas: inserir, consultar, alterar e excluir, também conhecidas no
universo da informática por Create, Retrieve, Update and Delete (CRUD) e,
principalmente, com a interface gráfica implementada automaticamente com a
vantagem do programador poder traduzir as informações apresentadas ao usuário
para o idioma necessário. Também ficou muito claro o paradigma MVC, que é a
base de organização de tal tecnologia. Porém, para o desenvolvimento de consultas
128
mais elaboradas e outros recursos do desenvolvimento web, faz-se necessário um
estudo aprofundado sobre JSF, já que utiliza procedimentos diferentes do modelo
anterior, ou seja, Servlets.
A composição de relatórios no formato PDF facilita a visualização por parte do
usuário, porém exige de quem desenvolve um pouco mais de conhecimento em
Java para sua elaboração e paciência para o trabalho com a estética do documento.
Por derradeiro, o desenvolvimento da aplicação para dispositivos móveis,
especialmente celulares, foi o grande destaque do trabalho por demonstrar a
integração de diversas plataformas de desenvolvimento de software funcionamento
harmônico entre si, de modo que demonstrou essa face importantíssima da
Plataforma Java. Além disso, a questão da reutilização de código ficou evidenciada
na listagem de agendamentos, feitas através do site e do software do celular, uma
vez que o código foi praticamente o mesmo, ressalvando algumas peculiaridades da
plataforma JAVA ME. Assim, demonstrou-se a portabilidade.
Destarte, conclui-se que um escritório de advocacia, por mais simples que
seja, ganha muita produtividade com a informatização, mesmo que básica, pois
reduz muitos erros a otimiza o controle de uma maneira geral. Outro aspecto de
destaque é a mobilidade proporcionada ao advogado, tanto pelo sistema web quanto
por poder listar seus compromissos através de seu celular com acesso à Internet de
qualquer forma. Além disso, a plataforma Java mostrou-se suficiente para solução
do problema proposto, devido à sua portabilidade e consequente aproveitamento de
código.
Como trabalhos futuros, a gestão de segurança e o desenvolvimento uma
interface gráfica amigável são ótimas opções.
129
REFERÊNCIAS BIBLIOGRÁFICAS
BORGES, Rosfran Lins. J2ME na Prática, 2004. Disponível em: <
http://www.ucb.br/java/JavaDays/J2ME_RosfranBorges.pdf > Acesso em: 08 mar.
2011
BREGAIDA E. JSF e outras tecnologias Java Web - IMES.java. Slides Share,
2011. Disponível em: <http://www.slideshare.net/eduardo.bregaida/jsf-e-outrastecnologias-java-web-imesjava > Acesso em: 10 mar. 2011.
CARDELLA, H.; CREMASCO, J. A. Manual de ética profissional do
advogado. 1 ed. São Paulo: Millennium, 2005.
CARNIEL, J. D. TV Digital e JavaTV. Nonsense... it’s life!, 2007. Disponível
em: <http://julianocarniel.blogspot.com/2007/12/tv-digital-e-javatv.html>. Acesso em:
3 mai. 2011.
CASTRO, A. O. Sistema de gestão para salas de vacinação. 2011.
Monografia (Curso Superior de Tecnologia em Banco de Dados) – Faculdade de
Tecnologia de Lins, Centro Estadual de Ensino Tecnológico “Paula Souza”, Lins.
FLOGGY: Framework de Persistência de Dados J2ME. Java Móvel. 2009.
Disponível em:
<http://www.javamovel.com/2009/06/floggy-framework-de-persis
tencia-de_2660.html> Acesso em: 15 mar. 2011
FRANZINI, F. Aplicações Web com Java. iMasters, 09 jul. 2009. Disponível
em: <http://imasters.com.br/artigo/13463/java/aplicacoes_web_com_java/> Acesso
em: 29 mar. 2011
GONÇALVES, E. Dominando Java Server Faces e Facelets utilizando
Spring 2.5, Hibernate e JPA. Rio de Janeiro: Editora ciência Moderna Ltda., 2008.
GOUVEA, W. Entendo a persistência em Java I. Let The Computer Decide,
Rio de Janeiro, 16 mar. 2010. Disponível em: <http://amsterdaintelligence.blogspot.
com/2010/03/entendo-persistencia-em-java-i.html> Acesso em: 18 abr. 2011
INTRODUÇÃO à tecnologia Java EE 5. NetBeans. 2010. Disponível em:
<http://netbeans.org/kb/docs/javaee/javaee-intro_pt_BR.html> Acesso em: 10 mar.
2011.
130
JSF e outras tecnologias – Java Web. Java Anywhere. 2008. Disponível em:
<http://javawora.blogspot.com/2008/08/jsf-e-outras-tecnologias-java-web.html>
Acesso em: 12 mar. 2011.
KING G. et. Hibernate - Persistência Relacional para Java Idiomático.
Hibernate. 2004. Disponível em: <http://docs.jboss.org/hibernate/core/3.5/reference
/pt-BR/html_single/> Acesso em: 14 abr. 2011.
KURNIAWAN, B. Java para a Web com Servlets, JSP e EJB: Um guia do
programador para soluções escalonáveis em J2EE. Rio de Janeiro: Editora ciência
Moderna Ltda., 2002.
LEMOS, A. J.; SENGER, V. JSF 2.0: Uma Evolução nas Interfaces Web
com Java. 2010. Disponível em: < http://www.slideshare.net/drspockbr/jsf-20-umaevoluo-nas-interfaces-web-com-java > Acesso em: 9 set. 2011
LOPES, C. JPA com Java Básico MySql. Camilo Lopes – LpJava. 29 mar.
2010. Diponível em: <http://blog.marcomendes.com/2007/04/10/o-modelo-unificadopara-os-frameworks-de-persistencia-em-java-jpa/> Acesso em: 11 mar. 2011.
NUNES, E. Jornal do Advogado. São Paulo, Número 353, agosto 2010.
O QUE é a tecnologia Java e por que é. Java. 2011. Disponível em:
<http://www.java.com/pt_BR/download/faq/whatis_java.xml> Acesso em: 27 mar.
2011.
OLIVEIRA, E. C. M. Tecnologia Java Web Start. Linha de Código. 2011.
Disponível em: <http://www.linhadecodigo.com.br/artigo/627/Tecnologia-Java-WebStart.aspx> Acesso em: 27 mar. 2011.
PALUDO, L. Um estudo sobre as tecnologias Java de desenvolvimento
de aplicações móveis. 2003. Tese Especialização em Ciência da Computação –
Faculdades de Informática, Universidade Federal de Santa Catarina, Florianópolis.
PAMPLONA, V. F. Prevayler: Persistência totalmente OO. Java free, 16 ago.
2009. Disponível em: <http://javafree.uol.com.br/artigo/871482/> Acesso em: 15 abr.
2011
131
PAULO L. Experiência com desenvolvimento WEB + JAVA. Tecnologia
Web, 14 set. 2008. Disponível em: <http://blog.lppjunior.com/experiencia-comdesenvolvimento-web-java/> Acesso em: 10 mar. 2011.
PULCINELLI, M. Teoria sobre JDBC. Blog do Pulcinelli, 11, dez. 2010.
Disponível
em:
<http://blog.marcio-pulcinelli.com/2010/12/11/teoria-sobre-jdbc>
Acesso em 17/12/2011
SERVLET. Scribd. 2010. Disponível em: < http://pt.scribd.com/doc/7238159/
JAVA-Servlet>. Acesso em: 24 abr. 2011
SILVA, R. L. Tecnologia Wireless. WebEdu. 2010. Disponível em: <
http://webeduc.mec.gov.br/linuxeducacional/manuais/Tecnologia%20Wireless.pdf>
Acesso em: 2 abr. 2011
SOUZA, L. G. A. de. Sistema para academia de ginástica mundo livre.
2011. Monografia (Curso Superior de Tecnologia em Banco de Dados) – Faculdade
de Tecnologia de Lins, Centro Estadual de Ensino Tecnológico “Paula Souza”, Lins.
TECNOLOGIA Wireless. ItalBrasNET. 2009. Disponível em: <
http://www.italbrasnet.com.br/tecnologia_de_produtos_wireless.html>. Acesso em:
14 mar. 2011.
VIANA, R. Java ME – Uma breve introdução. Rafael Viana Weblog, 2009.
Disponível em: <http://rvlaraujo.wordpress.com/2009/07/11/java-me-uma-breveintroducao/>. Acesso em: 30 abr. 2011
________. Persistência em Java ME – uma pequena introdução. Rafael
Viana Weblog, 4 dez. 2009. Disponível em: <http://rvlaraujo.wordpress.
com/2009/12/04/persistencia-em-java-me-uma-pequena-explicacao/> Acesso em: 18
abr. 2011
WIRELESS. iWeb. 2009. Disponível em: < http://www.iweb.com.br/iweb/pdfs/
20031008-wireless-01.pdf>. Acesso em: 27 mar. 2011
WIRELESS. World Lingo. 2010. Disponível em: < http://www.worldlingo.com/
ma/enwiki/pt/Wireless>. Acesso em: 2 abr. 2011
Download