reclama fácil

Propaganda
FACULDADE DE PINDAMONHANGABA
José Henrique Pedersoli
APLICAÇÃO MÓVEL PARA REGISTRO DE
RECLAMAÇÕES DE POSTURAS PARA MUNICÍPIO:
RECLAMA FÁCIL
Pindamonhangaba
2015
FACULDADE DE PINDAMONHANGABA
José Henrique Pedersoli
APLICAÇÃO MÓVEL PARA REGISTRO DE
RECLAMAÇÕES DE POSTURAS PARA MUNICÍPIO:
RECLAMA FÁCIL
Monografia apresentada como parte dos requisitos
para a obtenção do Diploma de Bacharel pelo curso
de Sistemas de Informação da Faculdade de
Pindamonhangaba.
Orientador: Prof. Claudio Etelvino de Lima
Pindamonhangaba
2015
FACULDADE DE PINDAMONHANGABA
JOSÉ HENRIQUE PEDERSOLI
APLICAÇÃO MÓVEL PARA REGISTRO DE
RECLAMAÇÕES DE POSTURAS PARA MUNICÍPIO:
RECLAMA FÁCIL
Monografia apresentada como parte dos requisitos
para obtenção do Diploma de Bacharel pelo Curso
Sistemas da Informação da Faculdade de
Pindamonhangaba.
Orientador: Prof. Claudio Etelvino de Lima
Data: ___________________
Resultado: _______________
BANCA EXAMINADORA
Prof .____________________________________ Faculdade de Pindamonhangaba
Assinatura________________________________
Prof .____________________________________ Faculdade de Pindamonhangaba
Assinatura________________________________
Prof .____________________________________ Faculdade de Pindamonhangaba
Assinatura________________________________
Resumo
Atualmente com a expansão do mercado dos dispositivos móveis, em especial os
smartphones, os quais possuem várias funcionalidades como GPS, câmera digital e acesso a
redes, e trazem grandes facilidades de conectividade aos seus usuários, há a possibilidade de
que muitas atividades que antes necessitavam da locomoção até o local físico para serem
realizadas possam ocorrer através de aplicativos (Bancos, compras), disponíveis ao próprio
usuário. Na contramão das facilidades e conectividade que os smartphones possibilitam,
observa-se que em alguns municípios a abertura de reclamações quanto às questões relativas
às posturas municipais, tais como limpeza de terreno, sujeiras, calçadas sem manutenção
dentre outras, ainda exigem a locomoção do reclamante à sede do órgão responsável. Neste
contexto a presente proposta visa à criação de um aplicativo para dispositivos móveis com
sistema operacional Android, no qual o reclamante através de uma interface gráfica simples
poderá efetuar reclamações pelo seu celular (smartphone) e encaminhá-las ao banco de dados
do órgão responsável, sendo possível a inserção de foto para instruí-la e facilitar a análise dos
fiscais municipais. Nesse aplicativo será possível, ainda, o encaminhamento de foto para
facilitar a compreensão dos fiscais municipais. A proposta baseou-se em pesquisa dos
serviços disponíveis em alguns Municípios, sendo observado o acesso, os serviços online e os
próprios canais disponíveis, tais como ouvidoria e protocolo das instituições, e as questões
que podem ensejar as reclamações, conforme previsão nos Códigos de Posturas. Assim, essa
proposta traz a facilidade ao cidadão para a abertura de reclamações em tempo real, ganhando
tempo e acesso ao órgão municipal e, para validá-la, foi elaborado um protótipo, pelo qual,
com os resultados positivos obtidos nos testes, sugerem que o sistema é adequado para a
aplicação em questão.
Palavras-chave: Android, Smartphone, código de posturas.
Abstract
Currently the market expansion of mobile devices, especially smartphones, which
have various features such as GPS, digital camera and access to networks, and bring great
connectivity features to its users, it is possible that many activities that previously required
Locomotion to the physical location to be carried out can occur through applications (banks,
shopping), available to the user himself. Contrary to the facilities and connectivity that
smartphones make it possible, it is observed that in some municipalities the opening of
complaints on issues relating to Council ordinances, such as land clearance, dirt,
unmaintained sidewalks among others, still require the locomotion of the claimant the
headquarters of the responsible agency. In this context the present proposal aims to create an
application for mobile devices with Android operating system, in which the complainant
through a simple graphical interface may make claims on your mobile (smartphone) and
forward them to the database of the responsible agency, with the possible photo insert to
instruct her and facilitate analysis of Council tax. In this application we can also forwarding
the photo to facilitate understanding of Council tax. The proposal was based on research of
available services in some municipalities, being watched access, online services and the
proper channels available such as ombudsman and protocol of institutions, and issues that
could lead to complaints, as provided in the codes postures. Thus, this proposal brings ease to
citizens to open complaints in real time, saving time and access to the municipal body and to
validate it, a prototype was developed, whereby, with the positive results obtained in the tests
suggest that the system is suitable for the application in question.
Keywords: Android, smartphone, postures code
Lista de Quadros
QUADRO 1 - VERSÕES DO ANDROID ............................................................................. 21
QUADRO 2 - REQUISITOS FUNCIONAIS ...................................................................... 44
QUADRO 3 - REQUISITOS NÃO FUNCIONAIS ............................................................. 46
Lista de Figuras
FIGURA 1 - ARQUITETURA DO SISTEMA OPERACIONAL ANDROID.................. 18
FIGURA 2 - CICLO DE VIDA ACTIVITY ......................................................................... 19
FIGURA 3 - COMANDO CREATE TABLE ........................................................................ 25
FIGURA 4 - COMANDO INSERT ....................................................................................... 26
FIGURA 5 – COMANDO SELECT ...................................................................................... 26
FIGURA 6 – COMANDO SELECT APRIMORADO ........................................................ 26
FIGURA 7 – COMANDO DELETE PARA IDCLIENTE 7 .............................................. 26
FIGURA 8 - COMANDO DELETE PELO NOME DA EMPRESA ................................ 27
FIGURA 9 - COMANDO UPDATE ..................................................................................... 27
FIGURA 10 - ARQUITETURA WEB SERVICE SOAP .................................................... 29
FIGURA 11 - ESQUEMA DE FUNCIONAMENTO DA JVM ......................................... 31
FIGURA 12 - PROGRAMA ECLIPSE ................................................................................ 34
FIGURA 13 - TELA MYSQL WORKBENCH ...................................................................... 34
FIGURA 14 - DIAGRAMA DE CASO DE USO ................................................................. 43
FIGURA 15 - INTERFACE RECLAMA FÁCIL ............................................................... 46
FIGURA 16 - DIAGRAMA DE CLASSE RECLAMA FÁCIL ......................................... 49
FIGURA 17 - DIAGRAMA DE CLASSE WEB SERVICE ................................................ 50
FIGURA 18 - DIAGRAMA DE ATIVIDADE EFETUA RECLAMAÇÃO ..................... 51
FIGURA 19 - DIAGRAMA DE ATIVIDADE CONSULTA RECLAMAÇÃO ............... 52
FIGURA 20 - DIAGRAMA DO BANCO DE DADOS ....................................................... 53
FIGURA 21 - ORGANIZAÇÃO APP RECLAMA FÁCIL ............................................... 55
FIGURA 22 - ORGANIZAÇÃO WEB SERVICE .............................................................. 56
FIGURA 23 - DIAGRAMA DO BANCO DE DADOS ....................................................... 63
FIGURA 24 - TELA DE ABERTURA DA APLICAÇÃO ................................................. 64
FIGURA 25 – TELA PRINCIPAL DA APLICAÇÃO – ABA RECLAMAR .................. 65
FIGURA 26 - TELA PRINCIPAL DA APLICAÇÃO – ABA EFETUADAS .................. 66
FIGURA 27 – FORMULÁRIO DE RECLAMAÇÃO SEM FOTO .................................. 68
FIGURA 28 – RESPOSTA DE RECLAMAÇÃO CADASTRADA .................................. 68
FIGURA 29 – FORMULÁRIO DE RECLAMAÇÃO COM FOTO ................................. 69
FIGURA 30 – RESPOSTA DE RECLAMAÇÃO CADASTRADA .................................. 69
FIGURA 31 –LISTANDO RECLAMAÇÕES ..................................................................... 70
FIGURA 32 – EXCLUINDO RECLAMAÇÕES ................................................................ 70
FIGURA 33 – TABELA DENUNCIA DO BANCO DE DADOS ...................................... 70
Lista de Siglas
API: Aplications Programming Interface
ART: Android Run Time
GPS: Global Positioning System
HTML: HyperText Markup Language
IBM: International Business Machines
IDE: Integrated Development Environment
JDK: Java Development Kit
JVM: JAVA Virtual Machine
OS: Operation System
PHP: Hypertext Preprocessor
REST: Representational State Transfer
RMI: Remote Method Invocation
SDK: Software Developement Kit
SGBD: Sistemas de gerenciamento de banco de dados
SOAP: Simple Object Access Protocol
SQL: Structured Query Language
UDDI: Universal Description Discovery and Integration
URL: Uniform Resource Locator
W3C: World Wide Web Consortium
WSDL: Web Services Description Language
XML: eXtensible Markup Language
MTOM: Mensagem Transmission Optimization Mechanism
SUMÁRIO
1. INTRODUÇÃO .................................................................................................................. 13
1.1 Objetivos Gerais ............................................................................................................. 14
1.2 Objetivos Específicos ..................................................................................................... 14
2. REVISÃO DA LITERATURA ......................................................................................... 16
2.1 Conceitos de Android ..................................................................................................... 16
2.1.1 História .................................................................................................................... 16
2.1.2 Estrutura .................................................................................................................. 17
2.1.3 Arquitetura ............................................................................................................... 18
2.1.4 Ciclo de vida de uma Activity .................................................................................. 19
2.1.5 Versões do Android ................................................................................................. 21
2.2 Conceitos de Banco de Dados Relacional ...................................................................... 24
2.3 Conceito Web Service: .................................................................................................... 27
2.3.1 Origem ..................................................................................................................... 27
2.3.2 Definição ................................................................................................................. 28
2.3.3 Padrões Web Service ................................................................................................ 28
2.3.4 Web Service SOAP .................................................................................................. 29
2.4 Java ................................................................................................................................. 30
2.4.1 Máquina Virtual Java ou JVM (Java Virtual Machine).......................................... 31
2.5 Código de Posturas Municipal........................................................................................ 32
3. MÉTODO ............................................................................................................................ 33
3.1 Sistema Operacional Windows 7 .................................................................................... 33
3.2 Eclipse Mars Release (4.5.0) .......................................................................................... 33
3.3 MySQL Workbench 6.2 .................................................................................................. 34
3.4 Astah Community 7.0...................................................................................................... 35
3.5 DBDesigner 4.0 .............................................................................................................. 35
3.6 Tomcat 8.0 ...................................................................................................................... 35
3.7 Android Studio ................................................................................................................ 36
3.8 Código de Posturas ......................................................................................................... 36
3.8.1 Código de Posturas do Município de Pindamonhangaba-SP - Deveres .................. 36
3.8.2 Código de Posturas do Município de Taubaté-SP – Deveres .................................. 38
3.9 Verificação dos Dados Necessários para Abertura de Reclamações .............................. 39
4. MODELAGEM ................................................................................................................... 42
4.1 Descrições do Aplicativo Reclama Fácil ........................................................................ 42
4.2 Diagrama de Caso de Uso .............................................................................................. 43
4.3 Requisitos ....................................................................................................................... 44
4.3.1 Requisitos Funcionais(RF) .......................................................................................... 44
4.3.2 Requisitos Não Funcionais(RF) .................................................................................. 45
4.4 Orientação a Objeto ........................................................................................................ 47
4.4.1 Diagrama de Classe ................................................................................................. 49
4.4.1.1 Diagrama de Classe - Aplicação Reclama Fácil ............................................... 49
4.4.1.2 Diagrama de Classe - Web Service ................................................................... 50
4.5 Diagrama de Atividade ................................................................................................... 51
4.5.1 Diagrama de Atividade Efetuar Reclamação........................................................... 51
4.5.2 Diagrama de Atividade Consulta Reclamação ........................................................ 52
4.6 Persistência de Dados ..................................................................................................... 53
4.6.1 Diagrama Banco de Dados ...................................................................................... 53
5. PROTÓTIPO ...................................................................................................................... 54
5.1 Organização do Projeto .................................................................................................. 54
5.1.1 Organização da Aplicação Reclama Fácil ............................................................... 55
5.1.2 Organização do Web Sevice ..................................................................................... 56
5.2 Classes do Projeto........................................................................................................... 56
5.2.1 Classes da Aplicação Reclama Fácil. ...................................................................... 56
5.2.1.1 Classe Splash .................................................................................................... 57
5.2.1.2 Classe MainAcitity ........................................................................................... 57
5.2.1.3 Classe MyTabListener ...................................................................................... 58
5.2.1.4 Classe Processo ................................................................................................ 58
5.2.1.5 Classe ProcessoAdapter .................................................................................... 59
5.2.1.6 Classe ProcessoDB ........................................................................................... 59
5.2.1.7 Classe Reclamação ........................................................................................... 60
5.2.1.8 Classe ReclamaDAO ........................................................................................ 60
5.2.1.9 Classe Fragment1 ............................................................................................. 60
5.2.1.10 Classe Fragment2 ........................................................................................... 61
5.2.2 Classes do Web Service ........................................................................................... 61
5.2.2.1 Classe ConectaMySQL .................................................................................... 61
5.2.2.2 Classe Reclamação ........................................................................................... 62
5.2.2.3 Classe ReclamaDAO ........................................................................................ 62
5.3 Banco de Dados .............................................................................................................. 62
5.4 Interface da Aplicação Reclama Fácil ............................................................................ 63
5.5 Teste ............................................................................................................................... 67
5.5.1 Teste Reclamação sem Foto .................................................................................... 68
5.5.2 Teste Reclamação com Foto .................................................................................... 69
5.5.3 Teste de Consulta e Exclusão de Reclamação ......................................................... 70
5.5.4 Tabela do Banco ...................................................................................................... 70
6. CONCLUSÃO E PROPOSTAS FUTURAS .................................................................... 71
6.1 Conclusão ....................................................................................................................... 71
6.2 Propostas Futuras ............................................................................................................ 72
7. REFERÊNCIAS ................................................................................................................. 73
13
1. INTRODUÇÃO
Atualmente com os dispositivos móveis, em especial os smartphones, trouxeram
grandes facilidades e conectividade para os seus usuários; possibilitando que muitas
atividades que antes necessitavam da locomoção até o local para sua execução possam ser
realizadas por aplicativos.
Uma grande aceitação aos smartphones pelos brasileiros é comprovada em pesquisas
realizadas pela empresa IDC-Brasil em 2014, pelas quais se constatou que os brasileiros
compraram 104 aparelhos por minuto, perfazendo um total de 293,5 milhões de unidades
vendidas de janeiro a dezembro.
Estes
aparelhos
possuem
grandes
funcionalidades
e
estão
em
constantes
aperfeiçoamentos, dentre as quais o GPS, as câmeras digitais com média e alta resolução e a
possibilidade de aplicativos para as mais diversas necessidades.
Considerando o grande volume de aparelhos que circulam na sociedade, o constante
crescimento e as suas inúmeras funcionalidades, estes aparelhos demonstram ser importantes
ferramentas para comodidade e benefício da população num mundo cada vez mais conectado
a redes e informações.
São essas funcionalidades e benefícios que o presente projeto “Aplicação Móvel para
Registro de Reclamações de Posturas para Município: Reclama Fácil” visa utilizar.
Hoje quando os cidadãos buscam denunciar situações cotidianas que interferem no
bem da população, tais como falta de construção de calçadas ou sua má conservação, buracos,
falta de limpeza em terrenos e locais públicos, dentre outras relacionadas ao Código de
Posturas Municipal, devem se locomover até o respectivo órgão público para o preenchimento
de requerimento e a abertura de processo de reclamação. Vale ressaltar que devido ao volume
de atendimento nos órgãos públicos, na maior parte demandam tempo do cidadão que deverá
dispor de seu tempo e, ainda, aguardar pelo atendimento no setor.
Este aplicativo ora proposto visa facilitar este processo, possibilitando a transmissão
via internet por meio do aplicativo instalado nos aparelhos de smartphones, garantindo aos
cidadãos a comodidade para efetuar a denuncia de qualquer lugar e em tempo real,
permitindo, ainda, transmitir fotos e coordenadas em GPS.
14
Com essa facilidade para os cidadãos comunicarem às prefeituras os problemas
constatados, será de grande importância para os órgãos públicos para um melhor controle na
administração e atendimento aos cidadãos, inclusive na saúde.
Hoje constantemente é divulgado na mídia (Rádio, TV e Jornais) sobre a infestação do
mosquito Aedes Aegypti que procria em água parada e é o transmissor da dengue; água esta
muitas vezes encontrada em lixos em terrenos, sendo esta uma possível reclamação através do
aplicativo proposto.
1.1 Objetivos Gerais
Este projeto tem por finalidade proporcionar a integração e comodidade dos cidadãos
que desejam exercer a sua cidadania, efetuando cadastro de processo de queixas de situações
em seus municípios controladas pelo Código de Posturas Municipal, garantindo a eles uma
melhor qualidade de vida.
Busca a acessibilidade a sistemas que integrem os anseios dos cidadãos às ações do
poder público, sendo uma interface entre os problemas apontados, a fiscalização e as
medidas adotadas pelos órgãos responsáveis dentro do município, pela higiene, ordem
pública, preservação do patrimônio municipal, dentre outras que possam afetar o bem estar
da população.
1.2 Objetivos Específicos
O presente projeto busca a facilitação no atendimento aos cidadãos para abertura de
reclamações nos órgãos públicos municipais, quanto às situações controladas pelo código de
posturas municipais.
Esta facilitação é pretendida com o aplicativo para smartphone com sistema Android,
que com conexão via internet permitirá o acesso para cadastro de reclamações em banco de
dados do órgão público.
O uso dos smartphones demonstra grande crescimento nas funcionalidades e
conectividade, desta forma ao utilizá-lo para abertura da reclamação, em tempo real, seria de
grande valia, considerada a sua portabilidade e os dispositivos a ele incorporados, os quais
15
poderão ser utilizados para anexar fotos e localizações complementando assim as informações
quanto à reclamação apresentada.
Porém não só os cidadãos se beneficiariam com este aplicativo, pois as instituições
terão maior controle na administração e resolução desses problemas em seu município, pois
quando o cidadão exerce sua cidadania e comunica a situação, através de uma reclamação, ele
acaba auxiliando também ao próprio órgão público na fiscalização da cidade.
O cidadão quando se deparar com estas situações, tais como problemas em calçadas,
sujeira em terrenos dentre outros problemas, poderá preencher um formulário detalhando o
problema, utilizando-se do aplicativo e tendo a possibilidade de vincular fotos e ao
encaminhá-lo receberá um número de protocolo.
Através de um banco de dados (SQL) na instituição, será possível armazenar as
reclamações, que a instituição poderá trata-las através de seus sistemas internos.
16
2. REVISÃO DA LITERATURA
2.1 Conceitos de Android
De acordo com Scota (2010, p. 1):
O Android é um sistema operacional open-source, baseado em Linux, destinado a
equipamentos móveis. Desenvolvido inicialmente pela Google e posteriormente pela
Open Handset Alliance, o sistema possui uma rica e atraente interface gráfica, que
apresenta uma grande diversidade de aplicações, navegador de internet, banco de
dados integrado, jogos, integração com outros sistemas, como GPS, conectividades
diversas, como Bluetooth, EDGE, 3G e Wi-Fi e entre outras características.
“O Android é um sistema operacional móvel muito utilizado atualmente e que tem
como proprietária a empresa Google. Seu sucesso não se deve apenas a força de sua
proprietária mais também aos gigantes dos mercados mobiles e operadoras.” (LECHETAS,
2015).
De acordo com Lee (2011, p.2):
O Android é um sistema operacional móvel baseado numa versão modificada do
Linux. Ele foi originalmente desenvolvido por uma companhia iniciante homônima,
a Android, Inc.
“Android é construído sobre Linux Kernel. Além disso, utiliza uma máquina virtual
personalizada que foi projetada para otimizar a memória e recursos de hardware em um
ambiente móvel” (OHA, p. 1).
2.1.1 História
O sistema operacional Android está relacionado à empresa Android Inc. que foi
fundada por Andy Rubinera, Nick Sears e Chris White em outubro de 2003, na cidade de Palo
Alto, na Califórnia. Inicialmente esta empresa desenvolvia tecnologia totalmente
independente de outras empresas e com segredo absoluto de projetos. Dentre seus principais
objetivos, estava o desenvolvimento de um sistema operacional avançado para câmeras
digitais; porém algum tempo depois se percebeu que o mercado para tais dispositivos não era
grande o suficiente, assim a equipe desviou os seus esforços para desenvolver sistema
17
operacional para Smartphones, rivalizando assim com outros sistemas da categoria, como o
Symbian desenvolvido pela Nokia (GUIMARAES, 2013).
“Em 2005, como parte de sua estratégia para entrar no espaço móvel, o Google
comprou o Android e assumiu o trabalho de seu desenvolvimento” (LEE, 2011).
De acordo com Monteiro (2013, p.1):
Antes, o mercado de desenvolvimento para celulares era praticamente restrito aos
fabricantes e operadoras que controlavam a criação e inclusão dos aplicativos em
seus aparelhos. A liberação, por parte dos fabricantes, de um kit de desenvolvimento
de software (SDK) para suas plataformas e a criação de lojas para a distribuição de
aplicativos viabilizou a abertura deste mercado para praticamente qualquer empresa
ou desenvolvedor, criando assim novas oportunidades de negócio.
A plataforma Android desfruta hoje de um papel de destaque no mercado, tanto pela
quantidade significativa de dispositivos produzidos como também por oferecer uma
API rica, disponibilizando fácil acesso a vários recursos de hardware, tais como WiFi e GPS, além de boas ferramentas para o desenvolvedor. A facilidade de
desenvolver utilizando uma linguagem de programação (Java) bastante disseminada,
a simplicidade e baixo custo para a publicação de aplicativos na loja Google Play e a
quantidade de dispositivos Android em uso no mundo só fazem aumentar a
popularidade da plataforma.
2.1.2 Estrutura
“O Android é baseado no kernel do Linux, que é o responsável por gerenciar a
memória, os processos, Treads, segurança dos arquivos e pastas, além de redes e drives.”
(LECHETAS, p.27).
O kernel do sistema operacional é responsável por realizar todo o controle de
memória, assim vários processos e aplicativos podem ser executados simultaneamente.
A segurança do Android é baseada na segurança do Linux, cada aplicação é executada
em um único processo e cada processo contém uma thread dedicada.
Todos os aplicativos para Android são desenvolvidos em linguagem Java, porém no
sistema operacional não existe a máquina virtual Java(JVM), mas sim uma máquina virtual
otimizada para dispositivos móveis, chamada de Dalvik (LECHETAS, 2015).
A partir do Android 4.4, a máquina virtual Dalvik foi substituída pela máquina virtual
ART(Android RunTime), com o intuito de otimizar ao máximo o código para melhorar o
desempenho, essa melhoria veio com a compilação Ahead-of-time(AOT).
18
2.1.3 Arquitetura
O sistema operacional Android é dividido em cinco seções distribuídas em quatro
camadas;
Linux
Kernel,
Libraries(Bibliotecas),
Android
Runtime,
Application
Framework(Estrutura de aplicativos) e Applications(Aplicativos), como demostra na figura 1.
Figura 1 - Arquitetura do sistema operacional Android
Fonte: http://old.knoow.net/
De acordo com Sobrinho (2015, p. 1) a arquitetura do Android:
Aplicativos – Camada dos aplicativos do Android(E-mail, SMS, Mapas
Navegadores entre outros aplicativos).
Framework de Aplicações – Plataforma de desenvolvimento aberto que
garantem acesso irrestrito as API, tendo seus principais módulos: Gerenciador de
atividade, Provedor de Conteúdo, Gerenciador de Notificações e Gerenciador de
Recursos.
Bibliotecas – Conjunto de bibliotecas C/C++ utilizadas pelos componentes de
sistema. Ex.: MPEG4, H.264, MP3, AAC, AMR, JPG e PNG.
19
Android Runtime – Bibliotecas que fornece maioria das funcionalidades
disponível nas bibliotecas Java. Esta camada executa os programas complexos, com a
utilização de maquina virtual Dalvik. O Dalvik baseia-se no kernel do Linux.
Linux Kernel – Nessa camada que encontra o núcleo do sistema operacional,
neste caso o Kernel Linux.
2.1.4 Ciclo de vida de uma Activity
Para ser um bom desenvolvedor de aplicação para Android, é de suma importância
entender o ciclo de vida de uma Activity e os estados que ela assume, assim o diagrama
representado na figura 2 ilustra o funcionamento de uma aplicação.
Figura 2 - Ciclo de Vida Activity
Fonte: http://www.thiagocury.eti.br/disciplinas/android/ciclo-de-vida-activity.php
20
Estados de uma Activity:
onCreate(bundle) - O método onCreate(bundle) é uma única vez e seu o objetivo é
fazer inicialização necessária para executar a aplicação. Nele deve-se criar uma view e chamar
método setContentViewView(viewview) para configurar o layout da tela (LECHETAS, 2015).
onStart( ) - O método onStart( ) é chamado quando a Activity está ficando visível ao
usuário e já tem uma viewview. Pode ser chamado depois dos métodos (LECHETAS, 2015).
onCreate( ) ou onRestart, dependendo do estado da aplicação (LECHETAS, 2015).
onRestart( ) - O método onRestart( ) é chamado quando uma Activity foi parada
temporariamente e está sendo iniciada outra vez (LECHETAS, 2015).
onResume( ) - O método onResume( ) é chamado quando a Activity está no topo da
pilha “Activity stack”, e dessa forma já está executando como a Activity principal e
interagindo com o usuário. Esse método é frequentemente utilizado para disparar threads que
consultam web services ou banco de dados (LECHETAS, 2015).
onPause( ) – Sempre que a tela da Activity fechar o método onPause( ) será chamado,
assim salvando o estado da aplicação, para posteriormente quando a Activity voltar a executar
tudo possa ser recuperado no método onResume( ). Esse método pode ser chamado quando o
usuário pressionar o botão Home ou receber uma ligação telefônica (LECHETAS, 2015).
onStop( ) – Esse método é chamado depois do método onPause( ) e indica que a
Activity esta sendo encerrada e não mais visível ao usuário depois de parada a Activity poder
ser reiniciada no método onRestart( ). Caso a Activity fique muito tempo parada em segundo
plano o sistema pode encaminhar a Activity para o método onDestroy( ) para remove-la da
pilha e liberar memória caso necessário (LECHETAS, 2015).
onDestroy( ) – Esse método literalmente encerra a execução de uma Activity, podendo
ser chamado automaticamente pelo sistema operacional ou dentro da aplicação pelo método
finish( ). O método onDestroy( ) quando executado ele remove completamente a Activity da
pilha e seu processo no sistema operacional (LECHETAS, 2015).
21
2.1.5 Versões do Android
Desde a versão 1.5 o Google definiu batizar suas versões do Android com nomes de
sobremesas ou bolos em inglês e seguindo uma ordem alfabética, conforme representado no
quadro 1.
Quadro 1 - Versões do Android
Fonte: http://old.knoow.net/ciencinformtelec/informatica/android.htm
- Android 1.0 (Astro)
Essa versão voltada principalmente para negócios implantou a janela de notificações,
além de possuir o Android Market para download e atualizações de apps. Nessa versão teve
suporte a navegadores HTML, reprodução de vídeos via YouTube, além de serviços como
GTalk, Gmail, Google Maps e Google Syn (BARROS, 2013).
- Android 1.5 (Cupcake)
Primeira versão disponível comercialmente em grande escala, trouxe correções de
bugs e várias funcionalidades como introdução das widgets de terceiros, além de uma
ferramenta de copiar e colar, opção de captura de vídeo na câmera, upload de conteúdo para
YouTube, Picasa, reprodução de vídeos, transições animadas de tela, opção de autorrotação de
display e adição de fotos aos contatos favoritos (BARROS, 2013).
22
- Android 1.6 (Donut)
Essa versão veio com mesmo padrão visual da versão anterior, porém ganhou novos
recursos como comandos de voz na busca de conteúdo, online e offline, integração entre
galeria e câmera, melhor busca de apps no Android Market, com screenshots, e suporte a telas
com resolução WVGA (BARROS, 2013).
- Android 2.0 e 2.1 (Eclair)
Nessa versão veio com papéis de parede animados, interface repaginada e novas
funcionalidades como suporte a sincronização de contas, Bluetooth 2.1, expansão de opções
ao tocar um contato, busca por maior número de conteúdo e novos recursos de câmera
(suporte a flash, zoom digital, macro e modos de cena), teclado virtual mais arrojada , suporte
a mais resoluções de tela, além de melhorias em apps como browser, calendário e Google
Maps (BARROS, 2013).
- Android 2.2 (Froyo)
Com engine Java V8 e compilador JIT, esta versão ser tornou a mais rápida do
Android, vinha o USB Tethering e a possibilidade de usar o smartphone como hotspot Wi-Fi.
Nesta versão os usuários puderam rodar conteúdo Flash, ver miniaturas de fotos em 3D, além
de melhorias no desempenho, chamadas por voz, opção para desativar o uso de dados de 3G e
troca rápida de idiomas no teclado (BARROS, 2013).
- Android 2.3 (Gingerbread)
Esta versão manteve as características visuais do antecessor, mas ganhou alguns
pequenos updates, como: interface de discagem, gerenciador de downloads, suporte a
múltiplas câmeras, sensores(giroscópios e barômetro), melhoria na autonomia da bateria e
compatibilidade a tecnologia NFC (BARROS, 2013).
- Android 3.0 (Honeycomb)
O Android 3.0, ganhou suporte a tablets e interface holográficas. Foi adicionadas
barras de sistema, acesso rápido a notificações, multitarefas simplificado, teclado
redesenhado, navegação em abas na internet, recurso de câmera (time-lapse, exposição e
foco), visualização de álbuns em tela cheia na galeria, bate-papo em vídeo via Google Talk,
23
além de suporte para processadores de múltiplos núcleos e criptografia de dados (BARROS,
2013).
- Android 4.0 (Ice Cream Sandwich)
Esse Android foi o divisor de águas entre as primeiras versões, trouxe a possibilidade
de customização de launcher, com opção de adicionar apps e widgets simplesmente
arrastando-os para tela principal. Outras funcionalidades foram: suporte a pastas, gerenciador
de tarefas com screenshots dos aplicativos, recurso de deslizar para fechar, Google Chrome
embutido, captura de imagens do display, acesso a apps na tela de bloqueio, desbloqueio do
celular com reconhecimento facial e editor de fotos embutido (BARROS, 2013).
- Androids 4.1, 4.2 e 4.3 (Jelly Bean)
O Jelly Bean teve três edições:
Versão 4.1 - que trouxe opções de acessibilidade melhoradas, notificações
expansíveis, opção de desativar alertas app por app, reorganização automática de atalhos e
widgets, transferência de dados de Bluetooth para o Android Beam, melhorias na busca por
voz e na câmera, além da adição do auxiliar Google Now.
Versão 4.2 - Adicionou recursos como: fotos panorâmicas em 360 graus com o Photo
Sphere, teclado com a digitação via gestos, melhorias na tela de bloqueio, multiusuários, novo
app de relógio, VPN sempre ligado, mensagens em grupo, além de correções de bugs.
Versão 4.3 - Veio com Bluetooth com baixo consumo de energia, resolução 4k e
interface de câmeras atualizadas (BARROS, 2013).
- Android 4.4 (Kit Kat)
Primeira versão a vir com nome de um doce comercial, nessa versão trouxe as
seguintes funcionalidades: NFC host card emulation, suporte a Bluettoth MAP, novo
Framework para interface do usuário, suporte a impressão sem fio e Otimizado memória e
tela sensível ao toque para multitarefa mais rápida (ANDROID, 2015).
- Android 5.0 (Lollipop)
Nessa versão a máquina virtual Dalvik foi substituída pela nova máquina virtual
ART(Android Run Time), além de trazer algumas novas funcionalidades como: suporte a 68
idiomas, novo design, nova maneira de controlar mensagens, melhor controle de bateria,
24
melhor sistema de segurança(SElinux), compartilhamento mais flexível, novas configurações
rápidas, melhor conectividade e bluetooth de baixa energia (ANDROID, 2015).
2.2 Conceitos de Banco de Dados Relacional
Banco de dados é um aplicativo para armazenamento e manipulação rápida de
uma
grande quantidade de dados.
Sistemas de gerenciamento de banco de dados relacionais (SGBDR) é um software
que controla o armazenamento, recuperação, exclusão, segurança e integridade dos dados em
um banco de dados, esses dados são armazenados em tabelas, e essas tabelas divididas em
linha e colunas. E cada tabela possuem chaves, que podem ser uma ou mais colunas
unicamente identificam uma linha (REVISTA MAGAZINE, Ed 86).
Segundo Date (2003, p. 3), “O banco de dados, por si só, pode ser considerado como o
equivalente eletrônico de um armário de arquivamento; ou seja, ele é um repositório ou
recipiente para uma coleção de arquivos e dados computadorizados.”
Entre as vantagens de um sistema de banco de dados em relação aos métodos
tradicionais, Date (2003, p. 15) afirma que algumas delas são:
Densidade: Não há necessidade de arquivos de papel, possivelmente volumosos.
Velocidade: A máquina pode obter e atualizar dados com rapidez muito maior que o
ser humano. Em particular, consultas ad hoc, de inspiração momentânea, podem ser
respondidas com rapidez sem qualquer necessidade de pesquisas manuais ou visuais
demoradas.
Menos trabalho monótono: Grande parte do tédio de manter arquivos à mão é
eliminada. As tarefas mecânicas são sempre feitas com melhor qualidade por
máquinas.
Atualidade: Informações precisas e atualizadas estão disponíveis a qualquer
momento sob consulta.
Proteção: Os dados podem ser mais bem protegidos contra perda não intencional e
acesso ilegal.
Os dados utilizados no banco de dados são informações armazenadas em tabelas que
tenham alguma finalidade para o usuário e elas podem ser gerenciadas de forma que se ajuste
a sua necessidade. Para tal, é necessário que o usuário passe comandos ao banco de dados
através de um sistema de gerenciamento de banco de dados (SGBD).
Dentre as diversas linguagens que o banco de dados possui, a SQL é a que
utilizaremos neste trabalho. Date (2003) diz que a SQL se tornou um padrão entre linguagens
de programação em banco de dados devido à sua fácil implementação e por estar presente um
grande número de produtos disponíveis comercialmente.
25
Desenvolvida originalmente pela IBM Research na década de 1970, SQL significa
Structured Querry Language (linguagem de consulta estruturada) e foi implementada pela
primeira vez em um protótipo da IBM chamada System R.
Segundo (Axmark; Widenius; Cole e DuBois, 2001), O MySQL liga com banco de
dados que contém 50.000.000 registros e com mais de 60.000 tabelas.
O MySQL é um sistema gerenciador de banco de dados relacional, significa que ele
“[...] armazena dados em tabelas separadas embora todos os dados estejam armazenados em
um só local. Isso proporciona velocidade e flexibilidade.” (AXMARK; WIDENIUS; COLE;
DUBOIS, 2001, p. 2).
Utilizando o comando CREATE TABLE é possível criar uma tabela básica, colocando
seu nome, seus respectivos campos e tipo, conforme representado na figura 3.
FIGURA 3 - Comando CREATE TABLE
Na figura 3 é possível observar um exemplo de criação de uma tabela chamada
“clientes” e seus campos: “idCliente”, “nomeEmpresa”, “nomeDiretor”, “numEmpregados”, e
o tipo de cada campo seguido do nome.
O campo idCliente ganha o atributo de auto_increment, para que cada vez que um
campo for criado, automaticamente será atribuído um número a mais do que o valor anterior,
não sendo necessária a inserção de um valor pelo usuário. Também foi colocado como
PRIMARY KEY para esse campo da tabela ser usado como referência em consultas e em
outras tabelas.
No campo nomeEmpresa e nomeDiretor ficaram como tipo VARCHAR(255), fazendo
com que os valores desse campo sejam caracteres com espaço máximo de 255 letras. O
atributo NULL em nomeDiretor faz com que por padrão este campo tenha o valor nulo até a
inserção de dados.
Date (2003) afirma que uma Linguagem de Manipulação de Dados (DML) é utilizada
para passar instruções ao banco de dados. Essas instruções são feitas através de verbos que no
caso do SQL são: SELECT, INSERT, DELETE e UPDATE, cada instrução representa
respectivamente seleção, inserção, exclusão e alteração.
26
Seguindo o exemplo da figura 4, a instrução de inserção de dados seria feita da
seguinte forma:
FIGURA 4 - Comando INSERT
Foram adicionados os valores de: vazio no campo ‘idCliente’ (devido o campo ser
auto_increment), ”GameCorp.“ no campo ‘nomeEmpresa’, “Din Viesel” em ‘nomeDiretor’, e
“2071” em ‘numEmpregados’.
Para realizar uma consulta desses dados da tabela é necessário utilizar o comando
SELECT, podendo ser usado conforme figura 5:
FIGURA 5 – Comando SELECT
Fazendo isso, serão exibidos todos os valores dentro da tabela clientes. Ainda é
possível aprimorar essa pesquisa utilizando alguns parâmetros para buscar as informações
desejadas.
FIGURA 6 – Comando SELECT aprimorado
No exemplo da figura 6, foi solicitado apenas ver o conteúdo dos campos ‘idCliente’ e
‘nomeEmpresa’ dentro da tabela clientes.
Utilizando o comando DELETE é possível deletar todos os registros dentro da tabela.
FIGURA 7 – Comando Delete para idCliente 7
No exemplo da figura 7, o registro da tabela cliente que continha o valor “7” foi
excluído.
Também é possível excluir mais registro de uma vez.
27
FIGURA 8 - Comando Delete pelo nome da empresa
No exemplo da figura 8, foram excluídos todos os registros do campo ‘nomeEmpresa’
com o valor de “GamerCorp”.
O comando UPDATE tem a função de alterar um registro já existente na tabela. No
exemplo da figura 9 é possível observar a alteração do valor no campo ‘numEmpregados’ na
linha em que o ‘idCliente’ é igual a “1”.
FIGURA 9 - Comando Update
Os comandos exemplificados são básicos para construção e manipulação de tabelas
SQL.
2.3 Conceito Web Service:
2.3.1 Origem
Os web services surgiram como evolução dos modelos de computação distribuídas,
com as tecnologias RMI, o DCOM e o CORBA, porém só obtinham sucesso na integração de
softwares em ambientes de redes locais e homogêneos.
Quando a internet chegou ao mercado corporativo, surgiu a necessidade de integrar
aplicações além das redes locais e em ambientes heterogêneos, assim surgiu a tecnologia que
chamamos hoje de web service, originado de um consórcio formado por grandes empresas
como IBM, Microsoft e BEA e outras empresas pertencentes ao W3C (GOMES, 2014, p.13).
Unindo as tecnologias da época, como JSP, ASP e PHP ao XML, foi criado pela W3C
o padrão para desenvolvimento de web services denominado SOAP(Simple Object Access
Protocol).
28
2.3.2 Definição
Web Service é uma solução para integração de sistemas e na comunicação entre
aplicações diferentes, principalmente em ambientes heterogêneos permitindo que as
aplicações enviem e recebam dados no formato XML(Extensible Markup Language)
(GOMES, 2014, p.13).
O XML foi definido pelo consórcio W3C como o formato padrão para troca de
mensagem entre as aplicações através do protocolo HTTP, devido à sua simplicidade e
compatibilidade em sistemas.
O SOAP por ser uma tecnologia criada pelo consórcio W3C e sem características
proprietárias tornou-se uma alternativa aos protocolos tradicionais.
Devido o Web Service ter que ser definido de forma consistente, o W3C criou a
específica WSDL(Web Services Description Languagem), que é um arquivo no formato XML
cuja a finalidade é descrever detalhadamente um Web Service. Esta descrição especifica as
operações que compõem os serviços do Web Service, definido de forma clara o formato de
entrada e saída das operações (GOMES, 2014, p. 13).
2.3.3 Padrões Web Service
Segundo Gomes(2014, p.15) atualmente existem dois padrões para desenvolvimento
de Web Service, sendo o padrão SOAP (Simple Object Access Protocol) e o
REST(Representational State Transfer).
O padrão SOAP criado pelo consórcio W3C que tem sua troca de mensagem com base
no formato XML e especificação WSDL(Web Services Description Languagem).
O padrão REST foi criado por Roy Fielding, esse padrão é um estilo de arquitetura de
software para sistemas hypermedia distribuído, sistema no qual texto, gráficos, áudio e outras
mídias são armazenados na rede e interconectadas através de hyperlinks (KALIN, 2010,
p.121).
29
2.3.4 Web Service SOAP
Na figura 10 são demonstrados os componentes e a sequência na chamada de um Web
Service.
Figura 10 - Arquitetura Web Service SOAP
Fonte: GOMES(2014, p.15)

SOAP(Simple Object Acess Protocol): Protocolo padrão para
transmissão de dados de um web service baseado no formato XML e
proposta pelo consorcio W3C.

WDSL(Web Service Descripion Languagem): Arquivo do tipo XML
que descreve um web service, descrição essa que especifica as
operações do serviço, definindo de forma clara como se deve ser o
formato de entrada e saída de cada operação.

UDDI(Universal Description, Discovery and Integration): É um
mecanismo que visa atender cliente de web service e provedor, ele
fornece meios para que o web service seja registrado e publicado,
permitindo que os mesmos sejam pesquisados e localizados pelos
clientes.

Cliente: É um software que consumirá o web service, utilizando suas
operações.
30

Provedor de web service: Esse componente é um servidor de aplicação
ou web container, podendo também armazenar o arquivo WSDL.
2.4 Java
Conforme Mendes(2009, p. 17), “A linguagem de programação Java representa uma
linguagem simples, orientada a objetos, multithread, interpretada, neutra de arquitetura,
portável, robusta, segura e que oferece alto desempenho.”
Essa linguagem de programação foi lançada em 1995 pela Sun Microsystems e
posteriormente sendo adquirida pela empresa Oracle pela aquisição da empresa Sun
(SOUZA;NARDON; REHEM; 2015).
A linguagem Java é considerada simples porque permite o desenvolvimento de
programas em diferentes sistemas operacionais e arquiteturas de hardware, sem se preocupar
com a infraestrutura, deixando essa interpretação para a JVM(Java Virtual Machine)
(MENDES, 2009).
Conforme Palmeira (2015), as principais características e vantagens da linguagem
Java são:










Suporte à orientação a objetos;
Portabilidade;
Segurança;
Linguagem Simples;
Alta Performance;
Dinamismo;
Interpretada (o compilador pode executar os bytecodes do Java diretamente em
qualquer máquina);
Distribuído;
Independente de plataforma;
Tipada (detecta os tipos de variáveis quando declaradas);
A independência de plataforma é principal característica da plataforma Java, pois um
programa desenvolvido nessa linguagem pode rodar em qualquer sistema operacional, apenas
dependendo que no sistema possua instalado o emulador conhecido como Máquina Virtual
Java ou JVMJava que será o responsável em executar os bytecodes do Java, assim fazendo a
ponte entre a programação Java e os recursos do sistema operacional (PALMEIRA, 2015).
31
2.4.1 Máquina Virtual Java ou JVM (Java Virtual Machine)
O Java utiliza o conceito de máquina virtual, que é uma camada extra entre o sistema
operacional e a aplicação, que fica responsável por traduzir o que a aplicação deseja fazer
para as respectivas chamadas do sistema operacional (CAELUM, 2005).
A máquina virtual não lê a programação Java e sim os ByteCode gerado pelo
compilador Java, desta forma em qualquer sistema operacional que possua a JVM instalada
rodará a aplicação desenvolvida em Java e convertida em ByteCode. Desta forma podemos
afirma que a máquina virtual é desenvolvida em código nativo, pois cada instalação da JVM
terá programação exclusiva para cada sistema operacional (ROMANTO, 2015). Na figura 11
é mostrado o esquema de funcionamento da JVM.
Figura 11 - Esquema de Funcionamento da JVM
Fonte: http://www.devmedia.com.br/entenda-como-funciona-a-Java-virtual-machine-jvm/27624
32
2.5 Código de Posturas Municipal
Pode-se dizer que as posturas municipais correspondem a um instrumento jurídico,
constituído por um conjunto de normas que regulam a utilização do espaço e do bem-estar
público, sendo o principal órgão mantenedor do nível de qualidade de vida urbana do
município (FARIAS, 2015).
São englobadas nas normas de posturas municipais as relativas à higiene das vias e
logradouros públicos, como calçadas, ruas, praças e monumentos históricos; à instalação ou
funcionamento de qualquer atividade comercial, que resulte em prejuízo de seus habitantes; à
publicidade com o controle de poluição visual e sonora da cidade; à higiene dentro das
habitações, como terrenos com lixo ou com água estagnada, em mau estado, conservação das
fachadas, recolhimento do lixo para coleta e estabelecimentos comerciais; à manutenção de
muros e calçadas; ao sossego público, às diversões públicas, dentre outras, visando o bem
estar da população (PINDAMONHANGABA, p. 1).
O Código de Posturas Municipais dispõe sobre as medidas de polícia administrativa a
cargo do município em matéria de higiene, ordem pública, preservação do patrimônio
municipal, atividades comerciais, industriais e tudo mais que possa afetar o sossego e bem
estar do povo, estatuindo as necessárias relações entre o poder local e os munícipes
(PINDAMONHANGABA, p.1).
33
3. Método
O presente trabalho será realizado com base em pesquisas em literaturas quanto à
programação para sistemas Android, criação de webservice, banco de dados SQL, consulta de
código de posturas, verificação dos dados necessários para abertura de reclamações, uso de
diagramas e a utilização de alguns programas como:
i.
Sistema operacional Windows 7 – 64bit ou superior
ii.
Programa Eclipse Mars Release (4.5.0)
iii.
MySQL Workbench 6.2
iv.
Pacotes para linguagem Java e Android
v.
Asth Community 7.0
vi.
DBDesigner 4
vii.
Tomcat 8
viii.
Android SDK r.24.4.1
ix.
Android Studio
3.1 Sistema Operacional Windows 7
Sistema operacional Windows 7 foi escolhido devido a sua grande aceitação,
facilidade de utilização e estabilidade, estando disponível em muitos microcomputadores,
tais como o utilizado para desenvolver este trabalho.
3.2 Eclipse Mars Release (4.5.0)
O eclipse foi adotado por ser uma IDE open source que abrange várias linguagens de
programação, inclusive a Java e Android, sendo que ambas serão utilizadas para o
desenvolvimento deste trabalho. Na figura 12 demonstra a tela do programa.
34
Figura 12 - Programa Eclipse
Fonte: print screen do programa Eclipse
3.3 MySQL Workbench 6.2
O MySQL é um sistema gerenciador de banco de dados relacional open source
muito utilizado em aplicações gratuitas, por suas funcionalidades e facilidades, desta
forma sendo adotada para o desenvolvimento deste projeto. Na figura 13 demonstra a
tela do programa.
Figura 13 - Tela MySQL Workbench
Fonte: print screen do programa MySQL Workbench
35
3.4 Astah Community 7.0
O Astah é um editor UML leve integrado que permite o desenvolvimento de
diagramas de software para desenvolvedores. Em sua versão gratuita denominada de
Community é possível elaborar os diagramas: Classe, Caso de Uso, Atividade, Sequência,
Comunicação, Componentes (ASTAH, 2015).
Este programa foi escolhido para elaborar os diagramas de classe e caso de uso.
3.5 DBDesigner 4.0
DBDesigner é um sistema gratuito de design de banco de dados visual que integra o
projeto de banco de dados, modelagem, criação e manutenção em um único ambiente
(FABFORCE, 2015).
Com essas funcionalidades e por ser gratuito este programa foi adotado para efetuar a
modelagem do banco de dados que será utilizado pela aplicação Reclama Fácil.
3.6 Tomcat 8.0
O software Tomcat é uma plataforma que permite a execução de aplicações para web.
Sua linguagem de programação é o Java, nas tecnologias de Servlets e de Java Server pages
(JSP) (DEVMIDIA, 2015).
Este software fará a disponibilidade do Web Service do projeto Reclama Fácil.
3.7 Android SDK r.24.4.1
O Android SDK é o Kit de Desenvolvimento de Software que inclui
documentação, código e utilitários para desenvolvimento de aplicativos para sistemas
Android. Ele é gratuito e a base para desenvolver aplicações para sistema Android.
36
3.7 Android Studio
Android Studio é a IDE para desenvolvimento de aplicações Android, sendo
desenvolvida pela empresa Google e é gratuita. Esta ferramenta será utilizada para
desenvolver a aplicação Reclama Fácil
3.8 Código de Posturas
Foram consultados os códigos de posturas dos municípios de Pindamonhangaba e
Taubaté, para basearem as linhas de responsabilidades das quais decorrem as reclamações
pelos munícipes quando estas não cumpridas, tais como limpeza de terreno, muro, poda de
árvores, eliminação de pragas, manutenção em calçadas, barulho dentre outras.
3.8.1 Código de Posturas do Município de Pindamonhangaba-SP - Deveres
O Código de Posturas do Município de Pindamonhangaba, instituído pela Lei
Municipal nº 1.156, de 10 de outubro de 1974, prevê dentre outras as seguintes obrigações
que permitiriam a abertura de reclamações:
“Artigo 25 - Os habitantes da zona urbana são responsáveis pela limpeza do passeio e
sarjeta fronteiriços à sua residência” (PINDAMONHANGABA, p. 2).
“Artigo 28 - É proibido colocar na via pública, para posterior transporte, aos sábados,
domingos e feriados, terra, entulho, ou qualquer material” (PINDAMONHANGABA, p. 3).
“Artigo 30 - A ninguém é lícito, sob qualquer pretexto, impedir ou dificultar o livre
escoamento das águas pelos canos, valas, sarjetas, ou canais das vias públicas, danificando ou
obstruindo tais servidões” (PINDAMONHANGABA, p. 3).
“Artigo 31 - As residências urbanas deverão ser conservadas sempre limpas, devendo
para isso, ser periodicamente caiadas e pintadas” (PINDAMONHANGABA, p. 4).
“Artigo 33 - Não é permitido conservar água estagnada nos quintais ou pátios dos
prédios situados na cidade, vilas e povoados” (PINDAMONHANGABA, p. 4).
“Artigo 38 - Não serão permitidos nos prédios da cidade, das vias e dos povoados,
providos de rede de abastecimento de água, a abertura ou a manutenção de cisternas”
(PINDAMONHANGABA, p. 4).
37
“Artigo 42 - Não será permitido a produção, exposição ou venda de gêneros
alimentícios deteriorados, falsificados, adulterados ou nocivos à saúde, os quais serão
apreendidos e removidos para local destinados à sua inutilização” (PINDAMONHANGABA,
p. 4).
“Artigo 50 - É expressamente proibido o comércio ou exposição de livros, revistas ou
jornais pornográficos ou obscenos” (PINDAMONHANGABA, p. 5).
“Artigo 52 - É expressamente proibido perturbar o sossego público com ruídos ou sons
excessivos evitáveis, tais como [...]”(PINDAMONHANGABA, p. 5).
“Artigo 53 - Nas igrejas, conventos e capelas, os sinos não poderão tocar antes das 5 e
depois das 22 horas, salvo os toques de rebates por ocasião de incêndios ou inundações”
(PINDAMONHANGABA, p. 5).
“Artigo 54 - É proibido executar qualquer trabalho ou serviço que produza ruído, antes
das 7 horas e depois das 20 horas, nas proximidades de hospitais, escolas, asilos e casas de
residências” (PINDAMONHANGABA, p. 5).
Artigo 56 - Os proprietários de bares, botequins ou restaurantes , que receberem em
seus estabelecimentos, depois das 22 horas, fregueses de ambos os sexos que pelo
seu comportamento perturbem os moradores vizinhos, serão considerados infratores
das normas de sossego e moralidade e terão sua licença de localização ou
funcionamento, cassada nos termos do item VII do artigo 4°, do Decreto-lei
Complementar nº 9, de31 de dezembro de 1969 (PINDAMONHANGABA, p. 5).
“Artigo 71 - É proibido embaraçar ou impedir, por qualquer meio, o livre trânsito de
pedestre ou veículos nas ruas, praças, passeios, estradas e caminhos públicos, exceto para
efeito de obras públicas [...]” (PINDAMONHANGABA, p. 6).
“Artigo 76 - É igualmente proibido galhos de árvores de quaisquer espécies pendentes
para a via pública, bem como plantas com espinhos em muretas com frente para a rua”
(PINDAMONHANGABA, p. 7).
“Artigo 78 - É proibida a permanência de animais soltos nas vias públicas”
(PINDAMONHANGABA, p. 7).
“Artigo 83 - É proibido às pessoas maltratarem animal de qualquer espécie, ou praticar
ato de crueldade contra o mesmo” (PINDAMONHANGABA, p. 7).
“Artigo 85 - Todo proprietário de terreno, cultivado ou não, dentro dos limites do
Município, é obrigado a extinguir os formigueiros existentes dentro de sua propriedade”
(PINDAMONHANGABA, p. 7).
38
“Artigo 88 - Nenhuma obra, inclusive demolição, quando feitas no alinhamento das
vias públicas, poderá dispensar o tapume provisório que deverá ocupar uma faixa de largura,
no máximo igual a metade do passeio” (PINDAMONHANGABA, p. 8).
“Artigo 92 - É proibido podar, derrubar ou sacrificar as árvores da arborização
pública” (PINDAMONHANGABA, p. 8).
“Artigo 102 - É proibido soltar balões e fazer fogueiras nos logradouros públicos”
(PINDAMONHANGABA, p. 9).
“Artigo 111 - Todo terreno urbano não construído, com frente para as vias e
logradouros públicos, deverá ser fechado com muro de tijolo ou cimento, devendo a altura
mínima, ser de 1,80 m (um metro e oitenta centímetros)” (PINDAMONHANGABA, p. 9).
“Artigo 116 - Os proprietários de prédios ou terrenos com frente para as vias públicas
(ruas, praças e avenidas), são obrigados a construir ou reconstruir, o passeio ou calçada da
frente dos seus respectivos imóveis” (PINDAMONHANGABA, p. 10).
3.8.2 Código de Posturas do Município de Taubaté-SP – Deveres
O Código de Posturas do Município de Taubaté, instituído pela Lei Complementar nº
68, de 17 de dezembro de 2008, prevê dentre outras as seguintes obrigações que permitiriam a
abertura de reclamações:
“Artigo 8º - A instalação dos andaimes e tapumes deverá ser solicitada através de
protocolo, e após vistoria efetuada pela fiscalização, o solicitante providenciará o
preenchimento da guia referente ao tributo devido, que servirá como licença” (TAUBATÉ, p.
3).
“Artigo 12 - A ocupação de logradouros públicos com mesas e cadeiras poderá ser
autorizada pela divisão administrativa competente e a título precário, quando satisfeitas as
seguintes condições [...]” (TAUBATÉ, p. 4).
“Artigo 21 - Fica proibido qualquer tipo de publicidade sonora na Zona Especial
Central definida pela Lei n.º 4.847, de 07 de janeiro de 2005” (TAUBATÉ, p. 7).
Artigo 23º - A construção, conservação da calçada, bem como a instalação de
mobiliário urbano, equipamentos de infraestrutura, sinalização, dentre outros
equipamentos permitidos por lei, deve garantir o deslocamento de qualquer pessoa
pela calçada, independente de idade, estatura, limitação de mobilidade ou percepção,
com autonomia e segurança (TAUBATÉ, p. 7).
39
“Artigo 24 - Considera-se responsável pela construção, conservação ou reconstrução
das calçadas, o proprietário do imóvel ou possuidor a qualquer título, que a executará segundo
os padrões e especificações fixados por esta Lei” (TAUBATÉ, p. 7).
“Artigo 32 - As canalizações para escoamento de águas pluviais deverão passar abaixo
das calçadas” (TAUBATÉ, p. 7).
“Artigo 41 - Os proprietários ou responsáveis pelos imóveis no Município são
obrigados a conservá-los em perfeito estado de higiene, estética e limpeza, mantendo bem
cuidados os quintais, os pátios e as fachadas” (TAUBATÉ, p. 10).
“Artigo 44 - Todo terreno não edificado, situado em logradouros que possuam guias e
sarjetas, deverá ter suas testadas delimitadas por muro em alvenaria de tijolos [...]”
(TAUBATÉ, p. 11).
“Artigo 48 - Todo terreno situado em área urbana deverá ser mantido, pelo
proprietário ou responsável, limpo, capinado ou roçado a uma altura máxima de 0,30m (trinta
centímetros)” (TAUBATÉ, p. 12).
“Artigo 62 - Fica expressamente proibida a venda de bebidas alcoólicas pelo comércio
eventual ou ambulante e outras bebidas em recipientes de vidro” (TAUBATÉ, p. 17).
Artigo 78 - Com o objetivo de manter o bem-estar e resguardar o sossego e a
segurança da coletividade em geral, é proibido, no Município, sob pena de multa,
além de outras penalidades cabíveis:
a) expor à venda gravuras ou escritos obscenos;
b) perturbar o sossego público com ruídos ou sons excessivos e desnecessários,
conforme previsto na legislação aplicável, incluindo as normas emitidas pelos
órgãos de trânsito (TAUBATÉ, p. 18).
3.9 Verificação dos Dados Necessários para Abertura de Reclamações
Foram analisadas as formas disponíveis para o registro de reclamações, através de
coleta de informações nos sites institucionais dos Municípios e pesquisa informação através
de atendimento disponível para informações ao cidadão, tais como setor de protocolo e
ouvidoria município de Pindamonhangaba, a fim de conseguir dados mínimos necessários
para estruturar e desenvolver este projeto, usando-se como parâmetro para o estudo das
questões que poderiam ser objeto de reclamação e a forma mais acessível para a realização de
reclamações, não sendo, contudo, este protótipo destinado ao caso concreto dos Municípios
referenciados e, sim, uma proposta que pudesse atender à órgãos que pudessem se beneficiar
de um acesso em tempo real para recebimento de reclamações.
40
Foi constatado, assim, que a abertura de reclamação tem sua principal meta a
privacidade do reclamante, não sendo necessários os dados completos do reclamante,
precisando sim de dados principais como: nome, meio de contato e a reclamação.
Para a abertura há a necessidade de se locomover até o setor de ouvidoria ou
encaminhar um e-mail com a reclamação.
3.10 Consulta de Aplicativos com Funções Semelhantes.
Foram consultados na internet sistemas que se destinassem a mesma função, onde
foram encontradas as seguintes aplicações:
- Cidadão Online.
- Cidadera.
3.10.1 Aplicativo Cidadão Online.
Aplicativo desenvolvido pela empresa 4R Sistemas, sendo encontrado no site
http://cidadaoonline.sistemas4r.com.br/cidadaonline.html, destina-se a receber reclamações
dos munícipes. Este sistema é composto por aplicativo gratuito para dispositivo e um sistema
web pago para tratar as reclamações, no qual a Prefeitura interessada deve contratar este
serviço. O banco de dados das reclamações é mantido pela empresa 4R.
Características principais:
- Aplicação nas nuvens.
- Localização GPS.
- Troca de mensagem.
- Informações organizadas e monitoradas através do Google Map.
- Banco de dados administrado pela empresa 4R Sistemas.
- Aplicativo para o cidadão é gratuita.
- Sistema para tratar as reclamações paga pela prefeitura.
3.10.2 Aplicativo Cidadera.
Aplicativo desenvolvido pela empresa Cidadera, sendo encontrado no site
https://cidadera.com, destina a receber reclamações dos munícipes. Este sistema é composto
41
por aplicativo gratuito para dispositivo moveis com sistema Android e IOS e um sistema web
pago para tratar as reclamações, em que a Prefeitura interessada deve contratar este serviço. O
banco de dados das reclamações é mantido pela empresa.
Características principais:
- Aplicação nas nuvens.
- Sistema Android mínimo 2.3.3.
- Localização GPS.
- Troca de mensagem.
- Informações organizadas e monitoradas através do Google Map.
- Login por rede social.
- Banco de dados administrado pela empresa Cidadera.
- Aplicativo para o cidadão é gratuita.
- Sistema para tratar as reclamações paga pela prefeitura.
- Campos para localizar comércios (anúncios).
3.10.3 Comparação Protótipo Proposto e Aplicações Existentes.
O protótipo Reclama Fácil proposto tem seu diferencial em ser uma aplicação
simplificada para uso exclusivo para abertura de reclamações, as quais serão armazenadas em
banco de dados na própria instituição para que seja possível sua consulta e manipulação
através de seus sistemas internos já utilizados, e que com pequenas modificações possa se
adaptar aos sistemas já usados pela Prefeitura. O reclama fácil pretende ser um protótipo que
mostre a possibilidade e simplicidade em desenvolver a aplicação sem custo para a Prefeitura
e que possam ser utilizados diretamente por ela, sem a necessidade de contratação de outros
sistemas para sua instalação. Podendo ser utilizado independentemente do nível de
informatização que a instituição possua e permitindo o seu desenvolvimento a partir das
necessidades e possibilidades de cada órgão.
42
4. Modelagem
A modelagem é atividade da engenharia de software responsável em representar o
conjunto de componentes e de relações entre esses, e normalmente é ilustrada graficamente
em modelo de arquitetura de sistemas, proporcionando ao leitor uma visão geral de
organização do sistema (SOMMERVILLE, 2005, p. 22).
De acordo com Souza e Souza(2015), a modelagem é uma das atividades que levam à
implementação de um bom software, com ela é possível criarmos modelos para comunicar a
estrutura e o comportamento do sistema, assim visualizando e controlando a arquitetura do
mesmo. Assim nós possibilitando a melhor compreensão do sistema que se deseja elaborar.
Essa atividade utiliza vários modelos para projetar um determinado sistema, onde
modelo é uma simplificação da realidade, criado para facilitar o entendimento de sistemas
complexos, abrangendo planos detalhados ou planos mais gerais com uma visão panorâmica
do sistema (SOUZA E SOUZA, 2015).
4.1 Descrições do Aplicativo Reclama Fácil
A aplicação pretendida neste documento será uma ferramenta que possibilitará aos
moradores de uma cidade proceder com a abertura de reclamações junto à prefeitura.
Reclamações essas que serão abertas e enviadas via internet com a utilização de
dispositivos móveis. Com essa aplicação será possível a abertura de reclamações de qualquer
dispositivo móvel que possua o sistema operacional Android e acesso a internet.
Por se tratar reclamações o sistema não possuirá validação de dados fornecidos pelos
reclamantes, para garantir o possível anonimato e abertura da reclamação sem dificuldade,
visando maior acesso dos munícipes.
As reclamações serão armazenadas em banco de dados interno na prefeitura, para que
sejam manipuladas pelos sistemas existentes e utilizado pela prefeitura, podendo ser feitas
pequenas modificações na aplicação para adaptar a estes.
43
4.2 Diagrama de Caso de Uso
A figura 14 demonstra o caso de uso do aplicativo Reclama Fácil.
Figura 14 - Diagrama de Caso de Uso
Fonte: elaborado pelo autor
44
4.3 Requisitos
Os requisitos do Reclama Fácil serão classificados em requisitos funcionais e
requisitos não funcionais nos próximos subitens.
4.3.1 Requisitos Funcionais(RF)
No quadro 2 serão apresentados os itens que descrevem os requisitos funcionais.
Quadro 2 - Requisitos Funcionais
Código
RF01
RF02
RF03
RF04
RF05
RF06
RF07
RF08
Nome
Efetuar Reclamação
Anexar Foto a Reclamação
Tirar Foto
Remover Foto a Reclamação
Consultar Reclamação
Excluir Reclamação
Gerar Numero da Reclamação
Exibe Mensagem de Reclamação Efetuada
Armazenar a Reclamação Efetuada no
RF09
Banco de Dados Interno da Aplicação
Prioridade
Alta
Média
Média
Média
Média
Alta
Alta
Alta
Alta
RF01
Prioridade: Alta
O programa irá permitir que o reclamante preencha um formulário e ao clicar no botão
enviar este será encaminhado ao órgão municipal.
RF02
Prioridade: Média
Será possível anexar uma foto na reclamação, clicando no botão tirar foto o aplicativo
acessará a câmera do dispositivo, permitindo assim que seja capturada a fotografia desejada.
RF03
Prioridade: Média
O programa acessará a câmera digital do disposto permitindo que captura da imagem
desejada.
45
RF04
Prioridade: Média
O programa possuirá um botão de excluir foto caso o reclamante não deseje mais
enviá-la.
RF05
Prioridade: Alta
No aplicativo quando clicar na aba Reclamações efetuadas serão listadas na tela todas
as reclamações efetuadas e que foram armazenadas no banco de dados interno da aplicação.
RF06
Prioridade: Alta
Na lista existente na aba Reclamações efetuadas, ao clicar sobre um item da lista, este
será excluído da base de dados interna da aplicação do dispositivo móvel, base esta diferente
do banco de dados da prefeitura.
RF07
Prioridade: Alta
O sistema irá gerar automaticamente o número sequencial da reclamação efetuada,
com base no ano, desta forma a cada ano existirá um número sequencial iniciado em um.
RF08
Prioridade: Alta
Após a reclamação ter sido cadastrada no banco de dados, o sistema irá mostrar
mensagem de reclamação efetuada com sucesso com número definido para a mesma.
RF09
Prioridade: Alta
Após a reclamação ter sido cadastrada no banco de dados, o sistema irá armazenar o
número, ano e assunto no banco de dados interno da aplicação.
4.3.2 Requisitos Não Funcionais(RF)
No quadro 3 serão apresentados os itens que descrevem os requisitos não funcionais.
46
Quadro 3 - Requisitos Não Funcionais
Código
RFN01
RFN02
RFN03
RFN04
RFN05
RFN06
RFN07
Nome
Criar interface simples e de fácil usabilidade
Gerenciador de Banco de dados para as reclamações
Aplicação deverá acessar o Banco de dados por Web Service
Linguagem Java para a programação
Acesso a Internet
Sistema Operacional Android 2.3.3
Tempo de Resposta
Prioridade
Alta
Alta
Alta
Alta
Alta
Alta
Alta
RFN01
Prioridade: Alta
O sistema deverá possuir interface gráfica simples e de fácil usabilidade permitindo,
desta forma, sua utilização de forma intuitiva, conforme o apresentado na figura 15.
Figura 15 - Interface Reclama Fácil
Fonte: elaborado pelo autor
47
RFN02
Prioridade: Alta
Será utilizado SGBD MySQL Workbench para armazenar as reclamações efetuadas,
banco esse que será interno da instituição.
RFN03
Prioridade: Alta
O acesso ao banco de dados da instituição deverá ser por web service.
RFN04
Prioridade: Alta
A linguagem para o desenvolvimento do web service deverá ser em Java.
RFN05
Prioridade: Alta
Os dispositivos móveis para utilizar o aplicativo Reclama Fácil deverão possuir acesso
a internet.
RFN06
Prioridade: Alta
O aplicativo Reclama Fácil deverá ser desenvolvido para dispositivos que possuam o
sistema operacional Android no mínimo 2.3.3.
RFN07
Prioridade: Alta
Devido à reclamação depender de comunicação por internet, o tempo de resposta
deverá ser definido como 10 segundos.
4.4 Orientação a Objeto
A Orientação a Objetos é um dos paradigmas da linguagem de programação e,
atualmente, mais difundido dentre todos. Esse paradigma é um padrão que tem evoluído
muito, devido à segurança e reaproveitamento de código (GASPAROTTO, 2015).
48
Conforme Mendes(2009, p. 17):
O paradigma de orientação a objetos traz um enfoque diferente da programação
estruturada, no sentido de adotar formas mais próximas do mecanismo humano para
gerenciar a complexidade de um sistema. Nesse paradigma, o mundo real é visto
como sendo constituído de objetos autônomos, concorrentes, que interagem entre si,
e cada objeto tem seu próprio estado (atributos) e comportamento (métodos),
semelhante a seu correspondente no mundo real.
Orientado a objetos é uma estratégia de projeto em que os projetistas de sistema
pensam em termos de coisas e não em operações e funções, e que o sistema em
funcionamento é constituído de objetos que interagem entre si e ocultando informações sobre
representação do estado e limitando acesso a ele (SUMMERVILLE, 2004).
Os objetos são as representações de elementos com as mesmas características e que
podem ser tratados de forma semelhante (FILHO, 2008, p. 104).
De acordo com Gasparotto(2015), para que uma linguagem seja considerada no
paradigma de Orientação a Objeto ela deve possuir quatro requisitos:
-Abstração: É a representação de um objeto real que deve possuir uma identidade
única no sistema, deve possuir características (Propriedade) que a definem e deve possuir
ações que o objeto irá executar (métodos).
- Encapsulamento: É uma técnica que adiciona segurança a aplicação, em que esconde
as propriedades dos objetos, desta forma deixando as propriedades privadas, em que o acesso
às mesmas só é possível através dos métodos getters e setters.
- Herança: É o reuso do código em que este objeto poderá ser reutilizado em outra
parte da programação ou em outra aplicação.
- Polimorfismo: consiste na alteração do funcionamento interno de um método
herdado de um objeto pai.
Conforme Gasparotto(2015, p. 1):
A programação orientada a objetos traz uma ideia muito interessante: a
representação de cada elemento em termos de um objeto, ou classe. Esse tipo de
representação procura aproximar o sistema que está sendo criado ao que é observado
no mundo real, e um objeto contém características e ações, assim como vemos na
realidade.
49
4.4.1 Diagrama de Classe
Diagrama de classe é considerado por muitos como o mais importante e mais utilizado
diagrama da UML, pois com ele será demonstrado as classes que irão compor o sistema com
seus respectivos atributos e métodos, bem com os relacionamento entre elas (SILVA,
Magazine Ed. 63).
Neste item serão mostrados os diagramas de classes da aplicação Reclama Fácil e do
Web Service.
4.4.1.1 Diagrama de Classe - Aplicação Reclama Fácil
Na figura 16 é demostrado o diagrama de classe da aplicação Reclama Fácil.
Figura 16 - Diagrama de Classe Reclama Fácil
Fonte: elaborado pelo autor
50
4.4.1.2 Diagrama de Classe - Web Service
Na figura 17 será demostrado o diagrama de classe do web service.
Figura 17 - Diagrama de Classe Web Service
Fonte: elaborado pelo autor
51
4.5 Diagrama de Atividade
Diagrama de atividade mostra um processo de negócios ou um software como um
fluxo de trabalho por meio de uma série de ações. Computadores, componentes de software
ou as pessoas podem executar essas ações (MICROSOFT, p. 1).
4.5.1 Diagrama de Atividade Efetuar Reclamação
Na figura 18 é demostrado do diagrama de Atividade da aplicação Reclama Fácil.
Figura 18 - Diagrama de Atividade Efetua Reclamação
Fonte: elaborado pelo autor
52
4.5.2 Diagrama de Atividade Consulta Reclamação
Na figura 19 é demostrado do diagrama de Atividade da aplicação Reclama Fácil para
consultar reclamações.
Figura 19 - Diagrama de Atividade Consulta Reclamação
Fonte: elaborado pelo autor
53
4.6 Persistência de Dados
Devido à importância da permanência de dados das reclamações efetuadas, com
objetivo de serem tratadas posteriormente pela instituição com seus sistemas, faz-se
necessária a criação de tabela de banco de dados com a utilização de sistemas SGBD.
Para essa aplicação foi criada a tabela Denúncia com as seguintes colunas:
IdDenuncia, denuncia_numero, denuncia_ano, denuncia_tipo, denuncia_assunto,
nome_pessoa, telefone_pessoa, email_pessoa e foto_jpeg.
4.6.1 Diagrama Banco de Dados
Na figura 20 demonstra o diagrama do Banco de Dados.
Figura 20 - Diagrama do Banco de Dados
Fonte: elaborado pelo autor
54
5. Protótipo
Neste capitulo será demonstrado o desenvolvimento do protótipo da aplicação
Reclama Fácil, Banco de Dados e Web Service.
5.1 Organização do Projeto
Esse protótipo foi dividido em três partes para desenvolvimento, sendo:
- Banco de Dados: Será utilizado o padrão SQL e o gerenciador e banco de dados
MYSQL Workbench.
- Web Service: Será desenvolvido em linguagem Java e implementado com base em
classes.
- Aplicação Reclama Fácil: Será desenvolvido utilizando a IDE Android Studio, e
sendo implementado com base em classes.
55
5.1.1 Organização da Aplicação Reclama Fácil
Na figura 21 demonstra como foi organizado as classes da aplicação Reclama Fácil.
Figura 21 - Organização App Reclama Fácil
Fonte: print screen Android Studio
56
5.1.2 Organização do Web Sevice
Na figura 22 demonstra como foi organizado as classes do Web Service.
Figura 22 - Organização Web Service
Fonte: elaborado pelo autor
5.2 Classes do Projeto
O projeto Reclama Fácil teve sua programação com base em classes, visando uma
melhor organização, reaproveitamento e melhor manutenibilidade.
5.2.1 Classes da Aplicação Reclama Fácil.
A aplicação Reclama Fácil foi desenvolvida com base em 10 classes, que são:
Splash – Essa classe será responsável pela exibição da tela de início da aplicação, que
fornecerá um logo da aplicação e verificações necessárias para o funcionamento da aplicação.
MainActivity – Essa é a classe principal do projeto, nesta que será a base da aplicação,
ela será responsável por fragmentar a tela da aplicação em duas para crias as abas “Reclamar”
e “Efetuadas”.
57
MyTabListener – Essa classe é a responsável por conter a tela que será aberta dentro
de cada fragmento, sendo possível a manipular.
Processo – Essa classe será a responsável por criar o objeto processo, assim sendo
possível consultar e armazenar dados do mesmo através dos atributos dessa classe.
ProcessoAdapter – Essa classe será responsável por criar campos dentro do ListView,
que ira listar as reclamações efetuadas.
ProcessoDB – Essa classe será a responsável por acessar o banco de dados interno da
aplicação, possibilitando a inserção, consulta e exclusão.
Reclamacao – Essa classe é responsável em criar um objeto do tipo Reclamação, que
permitirá armazenar e tratar os atributos da reclamação a ser enviada.
ReclamaDAO – Essa classe será a responsável por se comunicar com o web servisse,
em encaminhar o objeto do tipo reclamação, que conterá os dados da reclamação a ser
cadastrada no banco de dados da instituição.
Classe Fragment1 - Essa classe é responsável por executar as instruções e criar a tela
de abertura de reclamação na aba “Reclamar”, aba essa criada por fragmento da tela na barra
de ActionBar.
Classe Fragment2 - Essa classe é responsável por executar as instruções e criar a tela
de consulta de reclamações na aba “Efetuadas”, aba essa criada por fragmento da tela na barra
de ActionBar.
5.2.1.1 Classe Splash
A classe Splash será responsável por abrir a tela inicial da aplicação, a qual trará o
logotipo da aplicação e fará as verificações necessárias para o funcionamento da aplicação.
Nessa classe possuirá os seguintes métodos:

onCreate( ) método responsável por inicializar todos os comandos quando o
formulário é chamado pela primeira vez. Dentro desse método possuirá a instrução Handler( )
que definirá o tempo que a tela inicial ficara aberta até chamar a MainActivity.
5.2.1.2 Classe MainAcitity
A classe MainActivity é a classe principal da aplicação, essa classe é basicamente uma
classe gerenciadora de UI (Interface com o usuário).
58
Nessa classe possuirá os seguintes métodos:

OnCreate( ) é o método que ocorre na inicialização do formulário, que é
responsável por inicializar as instruções e chamar o layout.

ActionBar será a classe instanciada dentro do OnCreate( ) para que seja criado
a barra superior da tela, a qual irá alojar os fragmentos.
5.2.1.3 Classe MyTabListener
Essa classe é a responsável por conter a tela que será aberta dentro de cada fragmento,
e sendo possível manipulá-la.
Nessa classe possuirá os seguintes métodos:

MyTabListener – Essa classe é a responsável por conter a tela que será aberta
dentro de cada fragmento, e sendo possível manipulá-la.

MyTabListener( ) será o método construtor desta classe.

onTabSelected( ) esse método será responsável por trocar de fragmento quando
pressionar o Tab.

onTabUnselected( ) esse método chamado quando a Tab perde o foco.

nTabReselected( ) esse método chamado quando uma Tab é selecionada
novamente.
5.2.1.4 Classe Processo
A classe processo será a responsável por criar o objeto processo, assim sendo possível
consultar e armazenar dados do mesmo através dos atributos dessa classe.
Nessa classe possuirá os seguintes métodos:

Processo( ) esse será o método construtor da classe.

Get( ) esse será o método responsável por retornar os dados do atributo, a
classe processo possuirá um método get( ) para cada atributo existente na classe.

Set( ) esse será o método responsável por inserir dados do atributo, a classe
processo possuirá um método set( ) para cada atributo existente na classe.
59
5.2.1.5 Classe ProcessoAdapter
A classe ProcessoAdapter será responsável por criar campos dentro do ListView que
irá listar as reclamações efetuadas.
Nessa classe possuirá os seguintes métodos:

ProcessoAdapter( ) será o método construtor da classe, que será chamado
sempre que esta classe for instanciada.

getCount( ) esse método será responsável em retornar o tamanho da lista.

getItem( ) esse método será o responsável em retornar um item da lista
conforme posição.

getItemId ( ) esse método retornará a posição do item da lista.

getView( ) esse método será o responsável em montar cada linha da lista e
retorná-la para visualização.
5.2.1.6 Classe ProcessoDB
Essa classe será a responsável por acessar o banco de dados interno da aplicação,
possibilitando a inserção, consulta e exclusão.
Nessa classe possuirá os métodos:

ProcessoDB( ) será o método construtor que será chamado sempre que a classe
for instanciada.

onCreate( ) é o método que ocorre na inicialização do formulário, que é
responsável por inicializar as instruções e chamar o layout.

onUpgrade( ) é o método que será chamado para atualizar a tabela do banco de
dados sempre que a versão do banco seja diferente.

inserir( ) é o método responsável por inserir dados na tabela do banco de dados.

excluir( ) será o método responsável por excluir um item da tabela do banco de

listTodos( ) será o método responsável por retornar todos os dados da tabela do
dados.
banco de dados.
60

toList( ) é o método chamado pelo listTodos( ) que tem a função de preencher
uma lista.
5.2.1.7 Classe Reclamação
Classe é responsável em criar um objeto do tipo Reclamação que permitirá armazenar
e tratar os atributos da reclamação a ser enviada.
Nessa classe possuirá os seguintes métodos:

Reclamacao( ) é o método construtor que será chamado sempre que a classe for
instanciada, e será o responsável por inicializar os atributos.

Get( ) esse será o método responsável por retornar os dados do atributo, a
classe Reclamação possuirá um método get( ) para cada atributo existente na classe.

Set( ) esse será o método responsável por inserir dados do atributo, a classe
Reclamação possuirá um método set( ) para cada atributo existente na classe.
5.2.1.8 Classe ReclamaDAO
Essa classe será a responsável por se comunicar com o web service e encaminhar o
objeto do tipo reclamação, que conterá os dados da reclamação a ser cadastrada no banco de
dados da instituição.
Nessa classe possuirá o seguinte método:

inserirReclamacao( ) esse método será o responsável em enviar o objeto do
tipo reclamação e receber a mensagem se a reclamação foi cadastrada. Nesse método será
montado a mensagem do tipo SOAP para comunicar com web service.
5.2.1.9 Classe Fragment1
Essa classe é responsável por executar as instruções e criar a tela de abertura de
reclamação na aba “Reclamar”, aba essa criada por fragmento da tela na barra de ActionBar.
Nessa classe possuirá os seguintes métodos:

onCreateView( ) é o método que ocorre na inicialização do formulário, que é
responsável por inicializar as instruções e chamar o layout. Esse método difere do onCreate( )
apenas que ele é inicializado dentro de uma View, devido a tela ter sido fragmentada.
61

onActivityResult( ) é o método que será chamado para retornar a imagem
capturada pela câmera digital do dispositivo, neste método será utilizado o comando base64
que irá converte a imagem retornada pela câmera digital de Byte para String(texto) para que
seja possível envio via mensagem para o web service.
5.2.1.10 Classe Fragment2
Essa classe é responsável por executar as instruções e criar a tela de consulta de
reclamações na aba “Efetuadas”, aba essa criada por fragmento da tela na barra de ActionBar.
Nessa classe possuirá os seguintes métodos:

onCreateView( ) é o método que ocorre na inicialização do formulário, que é
responsável por inicializar as instruções e chamar o layout. Esse método difere do onCreate(
). Neste método será executado o comando para criar a lista como todas as reclamações
efetuadas e armazenadas no banco de dados interno da aplicação.
5.2.2 Classes do Web Service
O web service foi desenvolvido com base em 3 classe:

ConectaMySQL – Classe responsável por armazenar os dados necessários para
se conectar ao SGBD.

Reclamacao – Classe responsável por criar um objeto do tipo Reclamação, que
permitirá armazenar e tratar os atributos da reclamação recebida para cadastramento.

ReclamacaoDAO - Essa classe será a responsável por se comunicar com o
banco de dados e enviar os dados a serem inseridos do banco de dados.
5.2.2.1 Classe ConectaMySQL
Essa classe é responsável em fornecer os dados para que seja possível efetuar a
conexão com SGBD do banco de dados.
Nessa classe possuirá os seguintes métodos:
62

obtemConexao( ) esse método que passará os dados para que seja possível
efetuar a conexão com SGBD.
5.2.2.2 Classe Reclamação
Classe responsável em criar um objeto do tipo Reclamação, que permitirá armazenar e
tratar os atributos da reclamação recebida via web service.
Nessa classe possuirá os seguintes métodos:

Reclamacao( ) é o método construtor que será chamado sempre que a classe for
instanciada e será o responsável por inicializar os atributos.

Get( ) esse será o método responsável por retornar os dados do atributo, a
classe Reclamação possuirá um método get( ) para cada atributo existente na classe.

Set( ) esse será o método responsável por inserir dados do atributo, a classe
Reclamação possuirá um método set( ) para cada atributo existente na classe.
5.2.2.3 Classe ReclamaDAO
Essa classe será a responsável por se comunicar com SGBD e encaminhar os dados a
serem inseridos na tabela do banco de dados da instituição.
Nessa classe possuirá o seguinte método:

inserirReclamacao( ) esse método será o responsável em receber os dados
enviados pela aplicação Reclama Fácil e enviar para o banco de dados para cadastramento.
Esse método será responsável também em receber do SGBD o número da reclamação e enviála a aplicação Reclama Fácil através do web service. Nesse método também será utilizado o
comando base64, mas agora será para converte a imagem de texto para Byte e posteriormente
ser tratado com Stream.
5.3 Banco de Dados
Para o controle do banco de dados SQL deste projeto, esta sendo utilizado o SGBD
MySQL Workbench.
63
Neste banco de dados foi criado uma tabela contendo as seguintes colunas, conforme
figura 23:
Figura 23 - Diagrama do Banco de Dados
Fonte: elaborado pelo autor
O SGBD será o responsável em criar o número da reclamação, assim foi criado uma
Stored Procedure(conjunto de comandos em SQL que são executados de uma só vez) que
efetuará através de vários comandos a inserção da reclamação e a definição do número da
reclamação.
5.4 Interface da Aplicação Reclama Fácil
A aplicação Reclama Fácil foi concebida com duas telas, sendo uma e fragmentada em
duas através de abas.
Ao iniciar a aplicação será mostrado a tela de abertura do sistema com o logotipo da
aplicação conforme figura 24, que após alguns segundos será encaminhado para a próxima
tela “MainActivity”.
64
Figura 24 - Tela de Abertura da Aplicação
Após um período de tempo a aplicação irá abrir a tela principal do sistema conforme
figura 25, que possuirá duas abas, sendo uma Aba “Reclamar” para efetuar a reclamação e
outra Aba “Efetuada” para consultar as reclamações efetuadas.
65
Figura 25 – Tela Principal da Aplicação – Aba Reclamar
66
Na aba Reclamar é possível preencher um formulário com os dados do reclamante,
tipo da reclamação e anexar uma foto.
No final da tela quando clicar no botão enviar a reclamação será encaminhada ao
banco de dados da instituição através do web service e retornará a mensagem com o número
da reclamação cadastrada.
Na aba “Efetuadas” será apresentada uma lista com todas as reclamações efetuadas
através do dispositivo. Figura 26.
Figura 26 - Tela Principal da Aplicação – Aba Efetuadas
67
5.5 Teste
Para validar as funcionalidades do presente protótipo, foi realizado teste com a
utilização de um equipamento tablete com sistema operacional Android 2.3.3, em que esses
testes serão apresentados neste item, com a simulação de abertura de reclamação, em que será
efetuada a abertura da reclamação com e sem foto, bem como a consulta das reclamações
efetuadas com a exclusão de uma delas.
68
5.5.1 Teste Reclamação sem Foto
Foi preenchido o formulário sem anexar foto conforme figura 27 e ao clicar em enviar
o sistema retornou a mensagem com o número da reclamação conforme figura 28.
Figura 28 – Resposta de Reclamação Cadastrada
Figura 27 – Formulário de Reclamação sem foto
69
5.5.2 Teste Reclamação com Foto
Foi preenchido o formulário anexando uma foto conforme figura 29 e ao clicar em
enviar o sistema retornou a mensagem com o número da reclamação conforme figura 30.
Figura 30 – Resposta de Reclamação Cadastrada
Figura 29 – Formulário de Reclamação com foto
70
5.5.3 Teste de Consulta e Exclusão de Reclamação
Foi acessada a aba “efetuadas” da aplicação para que fossem listadas as reclamações
efetuadas conforme figura 31 e clicado em cima da reclamação de número 1/2015 para efetuar
a exclusão conforme figura 32.
Figura 31 –Listando reclamações
Figura 32 – Excluindo reclamações
5.5.4 Tabela do Banco
Na figura 33 demostra a tabela do banco de dados após ser alimentada pelo aplicativo
Reclama fácil.
Figura 33 – Tabela denuncia do Banco de Dados
71
6. Conclusão e Propostas Futuras
6.1 Conclusão
É importante que o cidadão tenha um canal para relatar problemas relacionados aos
serviços que cabem ao Município prestar e/ou solucionar e que interferem diretamente no seu
cotidiano, observando-se ainda que alguns casos podem ser solucionados com maior
celeridade e eficiência se houver um meio mais eficaz de comunicação.
Visando meios para integrar a necessidade do cidadão e as facilidades ofertadas pela a
evolução tecnológica dos dispositivos móveis, em especial os smartphones, o aplicativo
proposto, buscou um meio para simplificar a forma como são realizadas as reclamações
relativas às posturas municipais, desenvolvendo um aplicativo para dispositivos móveis com
sistema operacional Android, através de uma interface simples e de fácil utilização para que o
usuário possa realizar sua reclamação por meio de seu celular (smartphone) e enviá-la ao
banco de dados do órgão responsável.
Essa forma de serviço online atenderia também ao próprio órgão responsável o qual
terá um banco de dados com as informações necessárias para a avaliação dos problemas
relatados, utilizando seus sistemas internos para análise do caso e após o seu direcionamento
ao setor competente para as providências que o caso requer.
O aplicativo demonstrou possuir a funcionalidade para os fins propostos, permitindo
um acesso rápido, simples e compreensivo para a utilização pelo usuário no registro de
reclamações, permitindo, ainda, a inserção de texto e imagem.
Em razão da simplicidade e funcionalidade do aplicativo seria de fácil acesso para
implantação nos Municípios, especialmente nos quais não dispõem de sistemas integrados e
poderiam utilizar-se dele sem que houvesse maiores custos.
Os testes demonstraram que o aplicativo funcionou para a finalidade proposta,
permitindo um acesso rápido, simples e compreensivo para a utilização pelo usuário para o
registro de reclamações havendo, ainda, a possibilidade inserção de texto e imagem.
72
6.2 Propostas Futuras
A partir do projeto inicial poderão ser desenvolvidas novas funções, inserindo-se
novas informações e ampliando as possibilidades e facilidades para os usuários, tanto o
cidadão quanto o órgão administrativo.
Ampliar a possibilidade para inserção de mais de uma foto e seu desenvolvimento para
permitir a inserção também de vídeos de curta extensão que mostrem fatos que são melhores
visualizados através de movimento.
Partindo-se do banco de dados para desenvolver outras facilidades, tais como melhor
arquivamento de vídeos e imagem, para que continuem armazenados no próprio banco de
dados ou em pastas com vínculo do nome e o caminho no banco de dados.
Transmitir os arquivos de foto e vídeo via web service por transmissão de binários,
utilizando para isso MTOM do web service.
Desenvolver um sistema para ser utilizado internamente pelo município para
manipular as reclamações armazenadas no banco de dados, permitindo a impressão, a
visualização, eventual integração com outras informações e bancos de dados, visando outras
funcionalidades decorrentes da utilização pelo setor responsável pela fiscalização, conforme
necessidades específicas e de acordo com os resultados obtidos na experiência concreta de
cada órgão administrativo.
73
7. REFERÊNCIAS
ANDROID. KitKat 4.4. Disponível em: <https://www.Android.com/intl/ptBR_br/versions/kit-kat-4-4/#>. Acessado em: 03.out.2015.
ASTH. Asth Community. Disponível em: <http://www. astah.net/tutorials>. Acesso em:
15.out.2015.
AXMARK, D.; WIDENIUS, M.; COLE, J.; DUBOIS, P. Manual de Referências do
MySQL. v. 3.23. 2001, 868 p..
BARROS, T. Cinco anos de Android: relembre a história e todas as versões do sistema,
2013. Disponível em: <http://www.techtudo.com.br/noticias/noticia/2013/09/cinco-anos-deAndroid-relembrehistoria-e-todas-versoes-do-sistema.html>. Acesso em: 15.out.2015.
CAELUM. Java e Orientação a Objetos. Disponível em: <http://www.caelum.com.br>.
Acesso em: 15.out.2015.
DATE, C. J. Introdução a Sistemas de Bancos de Dados. Elsevier, 8. ed. Rio de Janeiro,
2003, 865 p..
DEVMEDIA. Conheça o Apache Tomcat. Disponível em:
<http://www.devmedia.com.br/conheca-o-apache-tomcat/4546>. Acesso em: 31.out.2015.
DIAS, A. C. Bancos de Dados Relacionais. Revista SQL Magazine. v. 86, n.1, acessado
2015. Disponível em: <http://www.devmedia.com.br/bancos-de-dados-relacionais-artigorevista-sql-magazine-86/20401>. Acesso em: 31.out.2015.
FABFORCE. DBDesigner. Disponível em: http://www.fabforce.net/dbdesigner4. Acesso em:
31.out.2015.
FARIA, R. M. A Origem das Posturas Municipais. Disponível em:
<http://www.posturastere.com.br/post-origem.html>. Acesso em: 31.out.2015.
GASPAROTTO, H. M. Os 4 pilares da Programação Orientada a Objetos. Disponível em:
<http://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264>.
Acesso em: 31.out.2015.
74
GOMES, D. A. Web Services SOAP em Java: Guia prático para o desenvolvimento de
web services em Java. 2. ed. São Paulo: Novatec Editora, 2014. p. 15.
GUIMARAES, G. A história do sistema operacional Android, 2013. Disponível em:
<http://www.dsc.ufcg.edu.br/~pet/jornal/agosto2013/materias/historia_da_computacao.html>.
Acessado em: 03.out.2015.
LECHETAS, R. R. Google Android: Aprenda a criar aplicações para dispositivos móveis
com o Android sdk. 4. ed. São Paulo: Novatec Editora, 2015. p. 25-26.
LEE, W. M. Introdução ao Desenvolvimento de Aplicativos para o Android. 1. ed. Rio de
Janeiro: Editora Ciência Moderna Ltda., 2011. p. 2.
MICROSOFT. Diagramas de atividade UML: referência, 2015. Disponível
em:<https://msdn.microsoft.com/pt-br/library/dd409360.aspx>. Acessado em: 13.dez.2015.
OHA et al. Android_overview . Disponível em:
<http://www.openhandsetalliance.com/Android_overview.html>. Acessado em: 03.out.2015.
PALMEIRA, T. V. V. Java: história e principais conceitos. Disponível em:
<http://www.devmedia.com.br/Java-historia-e-principais-conceitos/25178>. Acesso em:
31.out.2015.
PINDAMONHANGABA, LEI Nº 1.411, de 10 de outubro 1974. Dispõe Sobre o Código de
Posturas do Município. Pindamonhangaba, SP: Câmara Municipal.
ROMANATO, A. Entenda como funciona a Java Virtual Machine (JVM). Disponível em:
<http://www.devmedia.com.br/entenda-como-funciona-a-Java-virtual-machine-jvm/27624>.
Acesso em: 31.out.2015.
SCOTA, D. F. Configuração de Rede sem Fio e Segurança no Sistema Operacional
Android. 2010.( Especialização em Redes e Segurança de Sistemas ) - Pontifícia
Universidade Católica do Paraná. Disponível em:
<http://www.ppgia.pucpr.br/~jamhour/RSS/TCCRSS08B/Daniel%20Fernando%20Scota%20
-%20Artigo.pdf> . Acessado em: 03.out.2015.
SILVA, P. C. B. . Utilizando UML: Diagrama de Classes. Disponível em: <
http://www.devmedia.com.br/artigo-sql-magazine-63-utilizando-uml-diagrama-declasses/12251>. Acesso em: 31.out.2015.
75
SOBRINHO, C. Android (Sistema Operativo). Disponível em:<
http://old.knoow.net/ciencinformtelec/informatica/Android.htm>. Acessado em: 03.out.2015.
SOMMERVILLE, I. Engenharia de Software. 6. ed. São Paulo: Pearson Education do Brasil
, 2004. p. 22 – 221.
SOUZA, B.; NARDON, F. B.; REHEM, S. A História da Tecnologia Java. Disponível em:
<http://www.devmedia.com.br/a-historia-da-tecnologia-Java-easy-Java-magazine1/18446#ixzz3r8YblFyJ>. Acesso em: 15.out.2015.
SOUZA, C. A. R.; SOUZA, V. S. Modelagem de software com UML. Disponível em:
<http://www.devmedia.com.br/modelagem-de-software-com-uml-parte-1-easy-Javamagazine-4/20140#ixzz3qrXchLeB>. Acessado em: 10.out.2015.
TAUBATÉ, LEI Complementar nº 68, de 17 de dezembro de 2008 . Dispõe sobre o Código
de Normas, Posturas e Instalações Municipais. Taubaté, SP: Câmara Municipal.
Download