Upload
dinhanh
View
212
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE FEDERAL DE MATO GROSSO
INSTITUTO DE COMPUTAÇÃO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
CIÊNCIA DA COMPUTAÇÃO
RELATÓRIO DE ESTÁGIO SUPERVISIONADO
PLANO MUNICIPAL DE SANEAMENTO BÁSICO:
DESENVOLVIMENTO DE SOFTWARE DE FORMULÁRIOS E CÁLCULO
DOS INDICADORES
RODRIGO FONSECA DE MORAES
CUIABÁ – MT
2016
2
UNIVERSIDADE FEDERAL DE MATO GROSSO
INSTITUTO DE COMPUTAÇÃO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
CIÊNCIA DA COMPUTAÇÃO
RELÁTORIO DE ESTÁGIO SUPERVISIONADO
PLANO MUNICIPAL DE SANEAMENTO BÁSICO:
DESENVOLVIMENTO DE SOFTWARE DE FORMULÁRIOS E CÁLCULO
DOS INDICADORES
RODRIGO FONSECA DE MORAES
Relatório apresentado ao Instituto de
Computação da Universidade Federal de
Mato Grosso, para obtenção do título de
Bacharel em Ciência da Computação.
CUIABÁ – MT
3
2016
UNIVERSIDADE FEDERAL DE MATO GROSSO
INSTITUTO DE COMPUTAÇÃO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
CIÊNCIA DA COMPUTAÇÃO
RODRIGO FONSECA DE MORAES
Relatório de Estágio Supervisionado apresentado à Coordenação do Curso de Ciência
da Computação como uma das exigências para obtenção do título de Bacharel em
Ciência da Computação da Universidade Federal de Mato Grosso
Aprovado por:
Prof. Dr. Raphael de Souza Rosa Gomes
Instituto de Computação
(ORIENTADOR)
Prof. Dr. Thiago Meirelles Ventura
Instituto de Computação
Prof. Dr. Josiel Maimone de Figueiredo
(SUPERVISOR)
4
Este trabalho é dedicado à toda minha família, pelo
exemplo e carinho, e à minha esposa, que amo tanto.
5
Agradecimentos
Aos professores Raphael e Josiel, pela orientação durante o desenvolvimento
deste trabalho.
Ao professor Maurício que muito colaborou nos meus processos de mobilidade
acadêmica e transferência para este Campus.
Aos demais professores do Instituto de Computação pela amizade e
aprendizado que me proporcionaram.
Ao meu pai que deve estar lá do céu orgulhoso dessa conquista, à minha mãe,
uma pessoa mais do que especial, ao meu irmão, cunhada e sobrinho por sempre me
apoiarem.
Aos meus familiares de Diamantina e Mineiros, pelo incentivo.
Agradecimento especial à minha esposa, Lorena Barbosa Fonseca, que não
mediu esforços para me ajudar. Sem ela talvez não teria conquistado essa vitória.
Aos amigos que deixei em minha terra e aos que fiz por onde passei, vocês me
ajudaram bastante nessa jornada.
6
Sumário
1 INTRODUÇÃO ............................................................................................................................. 10
2 REVISÃO DE LITERATURA ...................................................................................................... 12
2.1 SANEAMENTO BÁSICO EM MATO GROSSO .................................................................. 12 2.2 ENGENHARIA DE SOFTWARE .......................................................................................... 13 2.3 SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS ............................................. 16 2.4 SISTEMAS WEB E ESTRUTURA CLIENTE/SERVIDOR WEB ......................................... 18
3 MATERIAS, TÉCNICAS E MÉTODOS ...................................................................................... 20
3.1 APACHE TOMCAT ............................................................................................................... 20 3.2 NETBEANS ............................................................................................................................ 20 3.3 APACHE ODF TOOLKIT (INCUBATING) .......................................................................... 20 3.4 JYTHON: PYTHON FOR THE JAVA PLATFORM ............................................................. 20 3.5 MYSQL ................................................................................................................................... 21 3.6 METODOLOGIA DE DESENVOLVIMENTO ..................................................................... 21
4 RESULTADOS .............................................................................................................................. 24
4.1 ADEQUAÇÃO DOS FORMULÁRIOS.................................................................................. 24 4.2 BANCO DE DADOS .............................................................................................................. 25 4.3 FUNCIONALIDADES DO SISTEMA ................................................................................... 27 4.4 SISTEMA DE IMPRESSÃO................................................................................................... 28 4.5 CÁLCULO DE INDICADORES ............................................................................................ 32
5 DIFICULDADES ENCONTRADAS ............................................................................................ 37
6 CONCLUSÕES .............................................................................................................................. 38
7 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................................... 39
ANEXO I. INDICADORES DE SANEAMENTO BÁSICO UTILIZADOS NO PROJETO ............. 41
ANEXO II. FORMULÁRIO IMPRESSO DIRETAMENTE DO SISTEMA ..................................... 43
7
Lista de Figuras
Figura 1 - Processo de desenvolvimento e seus relacionamentos.........................................................14
Figura 2 - Representação simplificada de um sistema Gerenciador de Banco de Dados.....................17
Figura 3 - Blocos de atividades realizadas durante o estágio...............................................................22
Figura 4 - Formulário de campo antes da adequação e padronização..................................................24
Figura 5 - Formulário de campo após a adequação e padronização.....................................................24
Figura 6 - Formulário de campo inserido no sistema...........................................................................25
Figura 7 - Diagrama de Entidades e Relacionamentos (DER) do banco de dados...............................26
Figura 8 - Página de autenticação do usuário......................................................................................27
Figura 9 - Página web de visualização, edição e exclusão de respostas dos formulários.....................28
Figura 10 - Formulário diagnóstico social versão 1.0...........................................................................29
Figura 11 - Seleção do formulário para impressão...............................................................................30
Figura 12 - Template do formulário de campo.....................................................................................31
Figura 13 - Tela de geração do relatório dos indicadores.....................................................................33
Figura 14 - Busca e tokenização da fórmula do indicador....................................................................34
Figura 15 - Código híbrido java e python.............................................................................................35
Figura 16 - Página de relatório dos indicadores....................................................................................36
8
Lista de Siglas e Abreviaturas
PMSB Plano Municipal de Saneamento Básico
MDS Metodologia de Desenvolvimento de Software
SGBD Sistema de Gerenciamento de Banco de Dados
ACID Atomicidade, consistência, isolamento e durabilidade
SQL Structured Query Language
URL Uniform Resource Locator
IDE Integrated Development Environment
ODF Open Document Format
SNIS Sistema Nacional de Indicadores de Saneamento
9
Resumo
O presente relatório refere-se ao Estágio Curricular Supervisionado realizado no
âmbito do projeto Plano Municipal de Saneamento Básico (PMSB-106), no contexto
do desenvolvimento de software. As atividades realizadas relacionaram-se ao
desenvolvimento formulários para captação de dados e cálculos de indicadores de
saneamento básico, além da criação de um banco de dados contendo todos os dados
colhidos, um sistema de formulários para inserções e consultas de dados futuras,
automatização da geração de formulários de campo e um sistema para cálculo e
geração de relatórios dos indicadores de saneamento básico. Utilizou-se bibliotecas
Apache ODF Tool Kit para o código gerar os formulários no formato Open Document
Text (ODT). Para realização do cálculo de indicadores do projeto, utilizou-se um
código híbrido que permitiu precisão, automatização e otimização dos relatórios dos
indicadores. Dentre as dificuldades encontradas para a realização do estágio destaca-
se a pequena presença, no currículo do curso, de conteúdos importantes para a
execução das tarefas do estágio, o que demandou mais tempo para a realização das
atividades.
10
1 INTRODUÇÃO
Este relatório apresenta as atividades desenvolvidas durante o Estágio
Curricular Supervisionado do curso de Ciência da Computação. O estágio foi realizado
no âmbito de um projeto denominado “Plano Municipal de Saneamento básico de 106
municípios de Mato Grosso - PMSB-106”, que percorre 106 municípios do estado de
Mato Grosso coletando dados sobre sua situação de saneamento para elaboração dos
seus respectivos Planos Municipais de Saneamento Básico. Estes municípios foram
selecionados segundo critérios de população e a necessidade de universalização dos
serviços de saneamento básico.
O Plano Municipal de Saneamento Básico representa para os municípios o
principal instrumento para que se possa realizar o planejamento do saneamento básico
municipal. Para sua elaboração, é necessária a coleta de dados referentes ao sistema
de abastecimento de água do município, de esgotamento sanitário, de manejo de
resíduos sólidos e de águas pluviais. O PMSB-106 tem como um de seus objetivos a
utilização dos dados coletados para possibilitar estudos que visam o melhoramento da
situação de saneamento básico dos municípios para os próximos vinte anos, o que pode
ser avaliado por meio de indicadores de saneamento, estabelecidos em um Termo de
Referência.
Neste sentido, dentre as demandas do projeto PMSB-106 estavam a
necessidade de um banco de dados (incluindo sua manutenção, edição e atualização)
e de um sistema de formulários (para coleta e apresentação de dados).
Neste sentido, criou-se um sistema baseado em softwares livres, que utiliza a
tecnologia de nuvem computacional para armazenar os dados dos municípios visitados
pelo projeto. O objetivo é que estas informações, tanto dos municípios individualmente
quanto de todos os municípios cobertos pelo PMSB, possam ser visualizadas por
qualquer usuário na forma de gráficos.
Inicialmente, foi necessária a adequação e padronização dos formulários de
coleta de dados, a partir dos formulários construídos para o projeto, para possibilitar a
inserção das questões no sistema de formulários.
Foi realizado ainda o contínuo processo de manutenção do sistema de
formulários, além do levantamento de requisitos para o desenvolvimento de algoritmos
11
para automatização dos processos de impressão de formulários e cálculo de
indicadores. O levantamento de requisitos também foi realizado para a atualização dos
formulários, conforme demanda do projeto.
Desta forma, o presente estágio teve como objetivo geral realizar a manutenção
de um sistema de formulários e um banco de dados para o projeto PMSB. E como
objetivos específicos:
Criar formulários para armazenamento dos dados coletados em campo
Entregar relatórios dos indicadores do projeto;
Adequar os formulários de campo para possibilitar sua criação no
sistema;
Desenvolver um sistema para possibilitar a impressão dos formulários
de campo diretamente do sistema de formulários;
Desenvolver um algoritmo para o cálculo dos indicadores de
saneamento.
O presente relatório foi organizado em cinco sessões. Na sessão 1 é apresentada
a revisão de literatura para aprofundamento do conhecimento teórico sobre o tema de
estágio; na sessão 2 estão apresentados os materiais, métodos e técnicas utilizados no
estágio supervisionado para o desenvolvimento do projeto; na sessão 3 estão
apresentados os resultados atingidos durante o período do estágio e na sessão 4 as
dificuldades encontradas. Por último, na sessão 5, apresentam-se as conclusões obtidas
com a realização do estágio.
12
2 REVISÃO DE LITERATURA
2.1 SANEAMENTO BÁSICO EM MATO GROSSO
Os municípios do estado de Mato Grosso apresentam precárias condições de
saneamento. Nem todos os municípios possuem água potável e em muitos casos a água
distribuída à população possui qualidade questionável. Além disso, a população não é
universalmente servida por sistemas de coleta e tratamento de esgoto sanitário, existe
uma ineficiência na coleta dos resíduos sólidos domiciliares e, aqueles coletados são
depositados em céu aberto, nos “lixões”, devido à inexistência, em muitos casos, dos
aterros sanitários (FILHO, 2016).
Esta precariedade dos serviços básicos de saneamento traz como consequência
diversos prejuízos sociais, econômicos e ambientais. Neste sentido, em 2007, a Lei nº
11.445, considerada com um marco regulatório do saneamento no Brasil, estabeleceu
os princípios direcionadores para a elaboração de políticas públicas de saneamento
básico no país (BRASIL, 2007), incluindo os planos municipais de saneamento básico.
Estes planos, que são quadrienais, são instrumentos fundamentais para o
planejamento do saneamento municipal. Neles devem ser contemplados os quatro
componentes do setor de saneamento, que são o abastecimento de água, o esgotamento
sanitário, limpeza urbana e manejo de resíduos sólidos, e o manejo de águas pluviais,
e abranger todo o território (urbano, rural, áreas indígenas e quilombolas) do município
(MINISTÉRIO DA SAÚDE, 2012).
A Lei nº 11.445 de 2007 estabelece a criação de um sistema de informações
municipal sobre saneamento, que irá coletar e armazenar dados e indicadores de
diferentes naturezas, e processá-los com o objetivo de produzir informações. Este
sistema é uma ferramenta essencial para a gestão das questões relacionadas ao setor,
por possibilitar o monitoramento da situação do município e a consequente intervenção
(MINISTÉRIO DA SAÚDE, 2012).
A elaboração do PMSB requer a realização de um diagnóstico do município,
que envolve a coleta de informações socioeconômicos, culturais, ambientais e de
infraestrutura, as políticas do setor de saneamento existentes, a infraestrutura de
abastecimento de água, de esgotamento sanitário, de manejo de águas pluviais,
infraestrutura de limpeza urbana e manejo de resíduos sólidos (MINISTÉRIO DA
SAÚDE, 2012).
13
Além disso, o PMSB deverá prever “Indicadores de Desempenho do Plano
Municipal de Saneamento Básico”, que permitirão a análise da evolução e a melhoria
das condições de vida da população, além da análise do atingimento das metas
estabelecidas e alcance dos objetivos fixados (MINISTÉRIO DA SAÚDE, 2012).
Segundo o Termo de Referência para elaboração dos PMSB “Indicadores são
valores utilizados para medir e descrever um evento ou fenômeno de forma
simplificada”, podendo ser derivados de dados primários, secundários ou de outros
indicadores. São classificados como analíticos, quando se constituem de uma única
variável, e sintéticos, quanto são constituídos por uma composição de variáveis
(MINISTÉRIO DA SAÚDE, 2012).
Ainda segundo o termo de referência, para a construção de um indicador, é
necessário nomeá-lo, definir seu objetivo, estabelecer sua periodicidade de cálculo,
indicar o responsável pela geração e divulgação, definir sua fórmula de cálculo, indicar
seu intervalo de validade, listar as variáveis que permitem o cálculo e identificar a
fonte de origem dos dados. Atualmente, adota-se, para o cálculo dos indicadores, o
Sistema Nacional de Informações sobre Saneamento (SNIS) (MINISTÉRIO DA
SAÚDE, 2012).
2.2 ENGENHARIA DE SOFTWARE
Considera-se que o software possui duplo papel, pois ao mesmo tempo em que
é um produto, é também um veículo para distribuir um produto. Enquanto produto,
fornece o potencial computacional representado pelo hardware ou por uma rede de
computadores que podem ser acessados por hardware local (celular, tablet ou
computador), atuando como um transformador de informações, desde as mais simples,
como um único bit, como as mais complexas, como uma apresentação multimídia
derivada de dados obtidos de dezenas de fontes independentes. Já como veículo de
distribuição de um produto, o software atua na forma de sistemas operacionais, de
redes e como ferramentas para criar e controlar outros programas (PRESSMAN;
MAXIM, 2016).
Diferentemente das soluções dadas para o desgaste em um hardware, com a sua
simples substituição, um software deteriorado ou que não serve adequadamente ao
usuário não pode ser substituído. Estas situações geram tarefas de manutenção de
software, que envolvem solicitações de mudanças e implicam complexidade
14
consideravelmente altas ao desenvolvedor, justificando a importância do adequado
processo de desenvolvimento do software (PRESSMAN; MAXIM, 2016).
De fato, como o desenvolvimento de software objetiva a criação de sistemas
de software que correspondam às necessidades de clientes e usuários, torna-se
fundamental a realização de uma correta especificação dos requisitos do software para
se obter o sucesso do processo (SOUZA et al., 2015).
Neste sentido as Metodologias de Desenvolvimento de Software (MDS)
dividem o processo de desenvolvimento de software, a fim de organizá-lo e facilitar
seu entendimento. Estas são divididas em duas áreas de atuação, a tradicional, que se
fundamenta na análise e no projeto, conservando tudo em documentação, porém,
desvantajosa para mudanças; e o desenvolvimento ágil, baseado em código, adaptável
a mudanças nos requisitos, mas deficiente no meio contratual e de documentação
(OLIVEIRA; SEABRA, 2015).
Independente da metodologia adotada, a Figura 1 ilustra os artefatos para o
desenvolvimento de software e seus relacionamentos.
Fonte: OLIVEIRA; SEABRA, 2015.
Figura 1. Processo de desenvolvimento e seus relacionamentos.
A engenharia de software é uma tecnologia em camadas fundamentada em um
compromisso com a qualidade, por meio da adoção das diversas filosofias de gestão
da qualidade total, como a Seis Sigma (PRESSMAN; MAXIM, 2016).
De uma forma geral, o processo de desenvolvimento define uma metodologia
que deve ser estabelecida para a entrega efetiva do software dentro do prazo e de forma
15
racional. Portanto, ele é a base para o controle do gerenciamento de projetos de
softwares e estabelece o contexto no qual são aplicados os métodos técnicos, são
estabelecidos artefatos e marcos, e a qualidade é garantida, além de as mudanças serem
gerenciadas de forma apropriada (PRESSMAN; MAXIM, 2016).
Pressman e Maxim (2016) destacam que na engenharia de software, um
processo não deve ser entendido como uma prescrição rígida de como desenvolver um
software, visto a inexistência de um processo ideal de desenvolvimento (OLIVEIRA;
SEABRA, 2015).
Portanto, o processo pode ser entendido como uma abordagem que permite ao
desenvolvedor e sua equipe a seleção do melhor conjunto de ações e tarefas que
possibilitarão o alcance do objetivo, que é entregar o software dentro do prazo e com
qualidade suficiente para sua utilização (PRESSMAN; MAXIM, 2016).
A literatura apresenta uma diversidade de modelos de processos de software,
conforme apresenta Pressman e Maxim (2016), como o modelo espiral, prototipado,
incremental, entre outros. O modelo em cascata é o mais antigo da engenharia de
software, e apresenta várias críticas. Primeiramente porque os projetos reais raramente
seguem o fluxo linear e sequencial proposto, e em segundo lugar porque na maior parte
das vezes o cliente não consegue explicitar todas as suas necessidades de uma única
vez.
Independente do modelo, atividades comuns são encontradas em todos os
processos, como a especificação de software, isto é, sua funcionalidade e suas
constantes de operação; o projeto de software e implementação; a validação de
software, para garantir que ele executa a necessidade do cliente; e a evolução do
software, para atender às necessidades de mudança do cliente (OLIVEIRA; SEABRA,
2015).
Para Pressman e Maxim (2016), uma metodologia de processo genérica
compreende a comunicação, o planejamento, a modelagem, a construção e a entrega.
Muitas vezes estas atividades são aplicadas repetidamente, quantas vezes forem
necessárias, para atender às demandas dos projetos, gerando incremento de software,
o que o torna sempre mais completo.
Apesar de não existir um modelo ideal, os processos devem considerar as
características específicas dos sistemas que estão em desenvolvimento. Por exemplo,
16
para um sistema crítico um processo bem definido é requerido, porém para sistemas
com mudanças rápidas de requisitos, um processo mais efetivo deveria ser ágil e
flexível (OLIVEIRA; SEABRA, 2015).
Destaca-se a importância do gerenciamento de projetos, uma vez que existem
muitos problemas em processos de desenvolvimento de software e produtos, tais como
as incertezas na estimativa de tamanho do projeto, o cronograma, entre outros. O
gerenciamento envolve a aplicação de um conjunto de conhecimentos, ferramentas,
habilidades e técnicas às atividades do projeto, tendo como objetivo atender os seus
requisitos. O progresso do projeto deve ser medido e monitorado regularmente a fim
de se identificar a existência de desvios em relação ao planejamento, de forma que se
possam aplicar medidas corretivas para trazer o projeto ao seu caminho planejado.
(MACEDO; SALGADO, 2015).
Os softwares podem utilizar a web como ambiente de execução, neste caso
sendo conhecidos como “aplicação web”. Aplicações web envolvem sites web ou
sistemas web (SILVA, 2014).
2.3 SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS
Um banco de dados é um conjunto de tabelas relacionadas e geralmente
integradas, reunidas de forma a dar sentido aos dados, ou seja, transformar dados em
informações (DATE, 2003). Um sistema simples de banco de dados está ilustrado na
Figura 2.
Por meio do banco de dados, os dados e registros contidos em tabelas diferentes
podem ser facilmente organizados e recuperados utilizando um software de gestão
especializado, chamado de sistema gerenciador de banco de dados (SGBD). Um
SGBD é um conjunto de programas de software que possibilita a criação, atualização,
edição, armazenamento e recuperação de dados em tabelas de banco de dados (DATE,
2003).
17
Figura 2. Representação simplificada de um sistema Gerenciador de Banco de Dados.
As transações em um banco de dados devem possuir quatro propriedades
fundamentais, impostas pelos métodos de controle de concorrência e recuperação do
SGBD. Estas propriedades são conhecidas como ACID (acrônimo para atomicity,
consistency, isolation e durability), e se referem à atomicidade, consistência,
isolamento (ou independência) e durabilidade das transações (DATE, 2003;
ELMASRI; NAVATHE, 2011):
Atomicidade: significa que as transações são atômicas. Eles devem ser realizados
na íntegra ou então devem ser totalmente desfeitas em casos de problemas de
execução. Esta propriedade exige que uma transação seja executada até o fim, e
ela deve ser garantida pelo subsistema de recuperação de transação do SGBD. Se
uma transação não for completada por algum motivo, como uma falha no sistema
no meio da execução da transação, a técnica de recuperação precisa desfazer
quaisquer efeitos da transação no banco de dados. Já as operações de gravação de
uma transação confirmada devem ser gravadas no disco;
Consistência: a execução de uma transação sempre transforma o estado
consistente (coleção de todos os itens armazenados no banco de dados) de um
banco de dados em um outro estado consistente. A garantia desta propriedade é
18
geralmente responsabilidade dos programadores que escrevem os programas de
banco de dados ou do módulo de SGBD que impõe restrições de integridade;
Isolamento: as transações devem parecer como se fossem executadas
isoladamente de outras transações, mesmo que executadas simultaneamente. Ou
seja, a execução de uma transação não deve sofrer interferência de outras
transações que acontecem simultaneamente. Ela é imposta pelo subsistema de
controle de concorrência do SGBD;
Durabilidade: responsabilidade do subsistema de recuperação do SGBD, refere-
se à característica de que, quando são aplicadas mudanças ao banco de dados pela
transação confirmada, estas precisam persistir no banco de dados e não devem ser
perdidas por causa de alguma falha.
Dentre os vários SGBD, pode-se citar o MySQL, que possui código aberto e
utiliza a linguagem SQL (Structured Query Language) como interface. Esta é a
linguagem padrão para os SGBD. Ela oferece recursos para definir a estrutura de dados,
atualizar, incluir, excluir e alterar dados, especificar restrições de integridade entre outros
recursos, apesar de ser considerada uma linguagem de consulta (SHARMA, 2010).
2.4 SISTEMAS WEB E ESTRUTURA CLIENTE/SERVIDOR WEB
Os sistemas web tem sido cada vez mais utilizados em empresas e diversos
outros seguimentos devido às facilidades e praticidades que eles impõem. Um sistema
web pode ser definido como um conjunto de dados e informações sobre um assunto,
disponibilizados para o acesso na internet, possibilitando a troca de informações. Em
geral eles são formados por várias páginas, com uma página inicial denominada
homepage, armazenadas em um ou mais servidores, com uma única porta de entrada,
que é o endereço na Internet, ou URL. As páginas dos sistemas web podem ser
acessadas por meio de links (BITTENCOURT et al., 2015).
Cliente Servidor “é uma arquitetura onde o processamento da informação é
dividido em módulos ou processos distintos. Um processo é responsável pela
manutenção da informação (Servidor) enquanto que outro é responsável pela obtenção
dos dados (Cliente)” (BATTISTI, 2001, p.38).
Segundo Vaskevitch (1995), a computação permite separar os processos em
plataformas independentes que interagem, permitindo que os recursos computacionais
19
sejam compartilhados obtendo o máximo de benefícios de cada dispositivo diferente,
ou seja, Cliente/Servidor é um modelo lógico.
Basttisti (2001) aponta que nos anos 90, quando foi sugerido, era um sistema
inovador e muito utilizado no meio corporativo. O sistema é baseado em três
componentes principais: gerenciamento de banco de dados, que funcionam como
servidores; redes, que funcionam como meio de transporte de dados e, finalmente
softwares para acesso aos dados: Clientes.
20
3 MATERIAS, TÉCNICAS E MÉTODOS
O sistema de formulários está hospedado em um servidor de configuração: Intel
(R) Xeon (R) CPU E5-2630 0 @ 2.30GHz processador, 3GB memória RAM e 15GB
de disco rígido, sistema operacional "Ubuntu Server 64 bits, versão 14.04.1 LTS”.
Nesse servidor está instalado o servidor de aplicação, Tomcat versão apache-
tomcat-7.0.64 e o SGBD Mysql versão 5.5.44
3.1 APACHE TOMCAT
Apache Tomcat é um servidor web java de código fonte aberto baseado em Java
que foi criado para executar aplicações Web que utilizam tecnologias Servlets e JSP.
O servidor Tomcat é mantido por um grupo de voluntários da comunidade de código
aberto do Java.Apache Tomcat. É um servidor bastante estável e possui todas as
características dos containers comerciais de aplicações web.
3.2 NETBEANS
Netbeans é um ambiente de desenvolvimento integrado - Integrated
Development Environment (IDE) open source que permite escrever, compilar, depurar
e executar programas em diversas linguagens de programação (NETBEANS, 2016).
Neste trabalho utilizou-se este IDE para construir programas (algoritmos de impressão
e cálculo de indicadores) na linguagem de programação Java.
3.3 APACHE ODF TOOLKIT (INCUBATING)
O Apache ODF Toolkit é um conjunto de módulos Java que permitem a criação,
digitalização e manipulação de arquivos de extensão ODF (Open Document Format).
Ao contrário de outras ferramentas que dependem de manipulação de tempo de
execução de editores pesados através de uma interface de automação, o ODF Toolkit
é leve e ideal para uso do servidor (APACHE, 2014). Neste trabalho utilizou-se esta
ferramenta no código de impressão dos formulários do sistema.
3.4 JYTHON: PYTHON FOR THE JAVA PLATFORM
Jython é uma implementação da linguagem Python que gera bytecode para
máquinas Java (JVM - Java Virtual Machine). Ela permite o desenvolvimento de
aplicações híbridas que unem código em Java e Python. Dentre suas utilidades, ela
21
permite embutir uma linguagem para criação de scripts em aplicações que requerem
este tipo de funcionalidade. Inclui ainda um compilador que converte código fonte
Python em Java bytecode, permitindo que programadores Python possam escrever
classes que possam ser utilizadas por um programa Java (JYTHON, 2008). Neste
trabalho foi necessário utilizar esta ferramenta para otimização do código que calcula
e gera o relatório dos indicadores de saneamento básico do projeto.
3.5 MYSQL
MySQL é um Sistema Gerenciador de Bancos de Dados relacional que utiliza
a linguagem padrão SQL (Structured Query Language) em aplicações para a Internet
(NIEDERAUER, 2008). Neste trabalho utilizou-se o MySQL versão 5.5.44 para
gerenciamento do banco de dados do projeto.
3.6 METODOLOGIA DE DESENVOLVIMENTO
Pode-se identificar cinco blocos de atividades durante o desenvolvimento do
estágio, não necessariamente consecutivos, e passíveis de retorno ao bloco anterior, e
sempre dependentes das demandas do projeto (identificadas por meio do levantamento
de requisitos). Os blocos consistiram da adequação do formato das perguntas do
formulário de campo ao sistema, com a padronização de cerca de 1.600 perguntas; a
criação dos formulários no sistema, criação de tabelas no banco de dados e o
desenvolvimento de programas no sistema para impressão dos formulários e cálculo
de indicadores (Figura 3).
22
Figura 3. Blocos de atividades realizadas durante o estágio.
Como partiu-se de um sistema de formulários pronto, foram necessárias
algumas modificações para atender as demandas do projeto, que foram realizadas na
terceira etapa do estágio. Uma destas demandas foi em relação às várias edições que
estavam sendo realizadas indiscriminadamente nos formulários de editor de texto para
coleta dos dados, gerando incompatibilidade entre o formulário criado no sistema e o
formulário de campo (impresso). Outra questão foi o tempo demasiadamente longo
gasto com alterações no formulário de campo e no formulário do sistema. A solução
encontrada foi no sentido de automatizar o processo, gerando impressões dos
formulários diretamente do sistema.
Outra demanda foi a criação de um programa para calcular indicadores a partir
das variáveis coletadas em campo e armazenadas no banco de dados. Estes indicadores
serão utilizados para o monitoramento do PMSB no que se refere ao atingimento das
metas estabelecidas e consequente alcance dos objetivos, efetivo funcionamento das
ações de emergência e contingência definidas, participação do controle social na
tomada de decisões, dentre outros. Devem ser analisados rotineiramente, garantindo
assim a melhoria da qualidade de vida da população. Para construir estes dois
programas utilizou-se a IDE Netbeans para programação em Java.
23
Vale ressaltar que procurou-se automatizar os processos do projeto, porém não
foi possível a automatização total, sendo ainda necessária a impressão de formulários
de papel para a coleta de dados em campo.
Uma das automatizações foi o desenvolvimento de um programa que tinha
como função imprimir os formulários de campo diretamente do sistema de formulários
para evitar incompatibilidade entre as versões do sistema e a versão de campo. Para
realização deste procedimento, utilizou-se o conjunto de bibliotecas Apache ODF tool
kit. Esse conjunto de bibliotecas permite que o programador possa criar e editar
documentos no formato ODF. Em nosso programa criamos programa com de texto,
formato ODT (Open Format Text) que é uma das possibilidades de documentos ODF.
Desenvolveu-se também uma segunda ferramenta para automatizar a
realização das operações dos indicadores para possibilitar o acesso e conhecimento
rápido às informações. Utilizamos o Jaython para inserir a linguagem de programação
phyton em nosso código java.
A utilização do phyton nos permitiu otimizar bastante o código java, porque
ele calcula as fórmulas dos indicadores que estão em formato String, direto neste
próprio formato.
O desenvolvimento de software envolve as etapas de levantamento de
requisitos e análise de requisitos (definição de requisitos); projeto; implementação;
testes e implantação (PRESSMAN; MAXIM, 2016). No contexto do projeto, no
entanto, não foi necessário seguir todas as etapas da metodologia do desenvolvimento
de software devido ao fato de o produto já estar pronto e também devido às diversas
adaptações que ele necessitou passar, pois o processo não estava bem definido, como
se espera em uma situação ideal.
Neste sentido, para o desenvolvimento dos programas supracitados foram
realizadas as etapas de levantamento de requisitos, implementação, treinamento e
manutenção, restando ainda a documentação.
24
4 RESULTADOS
4.1 ADEQUAÇÃO DOS FORMULÁRIOS
O processo de adequação e padronização dos formulários envolveu a
transformação de “perguntas” que estavam formatadas em tabelas de múltiplas colunas
para um formato adequado à criação dos formulários no sistema. Foram ainda alteradas
algumas questões abertas, com respostas em texto, logo, não padronizadas, em
perguntas fechadas. Em seguida, as questões foram inseridas no sistema, como
observado nas Figuras 4, 5 e 6:
Figura 4. Formulário de campo antes da adequação e padronização.
Figura 5. Formulário de campo após a adequação e padronização.
25
Figura 6. Formulário de campo inserido no sistema.
4.2 BANCO DE DADOS
O banco de dados do sistema de formulários é composto por diversas tabelas,
conforme apresentado pelo Diagrama de Entidade e Relacionamentos (DER) na Figura
7.
Dentre as tabelas, podemos destacar as principais que possibilitam a construção
dos formulários e armazenamento de suas repostas. A tabela ‘projeto’ armazena o
formulário, que está diretamente ligada à tabela ‘formulário’, que armazena os grupos
dos formulários. A tabela ‘formulário’ está ligada às tabelas ‘pergunta’, ‘município’ e
‘UF’. A tabela ‘pergunta’ está ligada à ‘perguntaitem’, que possui as repostas das
perguntas.
27
4.3 FUNCIONALIDADES DO SISTEMA
O sistema de formulários que foi cenário de trabalho neste estágio é um sistema
web de arquitetura cliente/servidor e está disponível para o usuário (cliente) na página
do projeto PMSB-106. Para acessá-la, o usuário deverá usar um navegador de internet
e obrigatoriamente deverá estar cadastrado pelo administrador do sistema para poder
realizar sua autenticação (Figura 8).
Figura 8. Página de autenticação do usuário.
Dentre as funcionalidades do sistema está a possibilidade de o usuário inserir,
alterar e excluir as respostas obtidas nos formulários de coleta de dados em campo
(impressos). Essas funcionalidades são mostradas na Figura 9.
28
Figura 9. Página web de visualização, edição e exclusão de respostas dos formulários.
4.4 SISTEMA DE IMPRESSÃO
Para possibilitar a impressão dos formulários diretamente do sistema web de
formulários, criou-se um módulo específico. Quando o usuário acessa e cria o
formulário no sistema, ele já está pronto para ser impresso porque o sistema de
impressão busca diretamente do banco de dados as informações inseridas para aquele
formulário.
Na Figura 10 pode se observar o exemplo da impressão do formulário
DIAGNÓSTICO SOCIAL VERSÃO 1.0. Para sua impressão é necessário apenas
executar o script de impressão.
29
Figura 10. Formulário diagnóstico social versão 1.0.
Quando o programa é executado, abre-se uma janela onde, em seu menu de
formulários, carrega-se todas as informações da tabela ‘ProjNome’, tabela do banco
de dados que contém o nome dos formulários cadastrados no sistema. Quando o
usuário navega pelos nomes dos formulários, carrega outro menu com os nomes dos
grupos. Estas informações são buscadas no banco de dados na tabela formulários. A
Figura 11 ilustra esse processo.
30
Figura 11. Seleção do formulário para impressão.
Depois de selecionado o formulário e o grupo que se deseja imprimir, o usuário
clica no botão Gerar. Neste momento o algoritmo usa as bibliotecas do Apache tool kit
para criar o documento.
Foi definido no algoritmo os diferentes tipos de resposta das perguntas, por
isso, criou-se uma condição para cada um deles. Para as perguntas que possuem
respostas do tipo fechadas, foram definidos campo de parênteses antes de cada texto
das respostas para que o técnico que irá preencher o formulário tenha o campo para
marcar a opção desejada. Nas perguntas dissertativas foram criadas 5 linhas para que
possa ser escrita a resposta dissertativa. E assim cada tipo de resposta tem um padrão
definido para ser impresso no formulário.
É realizada uma busca em sua pasta um modelo de formulário (template) com
as formatações desejadas como mostrado na Figura 12.
31
Figura 12. Template do formulário de campo.
Foi necessário a criação desse modelo devido a dificuldade de formatação do
cabeçalho, das margens e das colunas no código.
Para a impressão das perguntas no formulário é analisado o tipo das resposta.
Para cara tipo de resposta tem uma forma de impressão específica. No ANEXO II.
FORMULÁRIO IMPRESSO DIRETAMENTE DO SISTEMA é mostrado o resultado
da impressão de formulário selecionado no sistema.
32
4.5 CÁLCULO DE INDICADORES
Outro produto deste estágio, demandando pelo projeto PMSB-106, foi a
automatização do cálculo de indicadores de saneamento dos municípios visitados.
Os indicadores são calculados por operações entre as variáveis de saneamento
do município conforme preconiza o SNIS.
Para o cálculo dos indicadores, adicionou-se um módulo ao sistema de
formulários. Quando o usuário entra na página do sistema de formulários e acessa a
seção de relatório de indicadores, ele pode selecionar o município, formulário, grupo
e ano de referência do formulário e então obter os valores calculados dos indicadores
solicitados.
A Figura 13 ilustra como é realizado este processo de solicitação do cálculo
pelo usuário. O usuário acessa a página de relatório de indicadores e seleciona se quer
o relatório de todos os municípios ou de um específico, qual formulário e qual grupo.
No campo grupo é permitido ele selecionar todos os grupos do formulário selecionado.
No campo resposta ele seleciona o ano de referência das repostas do formulário. Após
os campos devidamente selecionados e o usuário confirmar, o módulo que calcula os
indicadores realiza buscas no banco de dados.
33
Figura 13. Tela de geração do relatório dos indicadores.
Na primeira etapa é realizada uma busca na tabela ‘formulárioitem’, que
contém as perguntas dos grupos que possuem o código SNIS e as armazenam em uma
lista. Uma segunda busca é realizada na tabela indicadores, que possui as fórmulas dos
indicadores que serão calculados. Essas fórmulas são do tipo string, logo o algoritmo
separa os códigos SNIS da string por meio da técnica de tokenização. É realizada uma
comparação entre os códigos obtidos pela tokenização e os guardados na lista, como
ilustrado na Figura 14.
34
Figura 14. Busca e tokenização da fórmula do indicador.
Quando os códigos extraídos da fórmula de indicadores são iguais aos códigos
guardados na lista, então esse indicador será calculado. É realizada uma busca das
respostas das perguntas do indicador que será calculado na tabela ‘pesquisaitem’,
tabela esta que possui as repostas inseridas pelos usuários de todas as perguntas
cadastradas no sistema.
Nesta etapa utiliza-se o Jython para transformar o algoritmo java em um
algoritmo híbrido, inserindo código de linguagem de programação Phyton para realizar
o cálculo dos indicadores. Utilizou-se o phyton para otimizar o algoritmo. Ele calcula
as fórmulas dos indicadores diretamente da string armazenada no banco de dados, e
guarda a reposta final em uma variável. Esse processo está ilustrado na Figura 15.
35
Figura 15. Código híbrido java e python.
Os valores salvos na variável ‘resp’ correspondem ao resultado de cada
indicador calculado do formulário selecionado. Esses valores são carregados na página
consulta de pesquisa e apresentados na forma de relatório para o usuário do sistema
(Figura 16).
37
5 DIFICULDADES ENCONTRADAS
As dificuldades encontradas no estágio foram em relação à grande quantidade
de modificações durante as etapas de execução, gerando retrabalho devido à
necessidade de, em muitos casos, recomeçar as tarefas, tornando o processo pouco
produtivo.
Além disso, durante a graduação foram realizadas poucas atividades para o
desenvolvimento de habilidades de redação de textos acadêmicos, o que dificultou a
redação do próprio relatório de estágio, além de temas importantes que não foram
estudados, o que dificultou a execução de algumas tarefas.
Destaca-se, porém, que a participação em projetos de pesquisa ao longo do
curso permitiu desenvolver alguns destes conteúdos, demonstrando a importância da
participação neste tipo de atividade como complementação da graduação para a
formação do Cientista da Computação.
38
6 CONCLUSÕES
Este trabalho de estágio supervisionado proporcionou contato direto com
desenvolvimento de software em diferentes linguagens de programação, levantamento
e análise de requisitos, execução de projeto, implementações, testes e treinamento de
equipes para utilização das ferramentas desenvolvidas.
A falta de saneamento básico é um problema enfrentado por todos os
municípios, e a computação se mostrou como uma ferramenta de auxílio para
identificação desses problemas, por meio da geração de relatórios precisos e rápidos
dos dados coletados e armazenados e de indicadores da qualidade dos serviços
prestados.
Os produtos solicitados nesse estágio foram a criação de um banco de dados
contendo todos os dados colhidos nos municípios, um sistema de formulários para
inserções e consultas de dados futuros, automatização da geração de formulários de
campo e um sistema para cálculo e geração de relatórios dos indicadores. Todas estas
demandas foram concluídas.
O presente estágio proporcionou experiências únicas de conhecimento, como
o trabalho em equipe, a utilização de técnicas e ferramentas específicas da computação,
não vistas nas disciplinas, entre outras, e que são fundamentais para a atuação
profissional.
Vale ressaltar que está previsto, entre outras atividades, o desenvolvimento de
Dashboards para apresentação dos indicadores. Estes estarão disponíveis no portal do
PMSB-106, para possibilitar o acompanhamento da evolução dos mesmos pela
população.
39
7 REFERÊNCIAS BIBLIOGRÁFICAS
APACHE ODF TOOLKIT (INCUBATING). Disponível por:
http://incubator.apache.org/odftoolkit/index.html. Acessado em 10 de setembro de
2016.
BATTISTI, Júlio. SQL Server 2000: Administração e Desenvolvimento: Curso
Completo. 2. ed. Rio de Janeiro: Axcell Books, 2001.
BRASIL. Lei nº 11.445, de 05 de janeiro 2007. Estabelece diretrizes nacionais para o
saneamento básico; altera as Leis nos 6.766, de 19 de dezembro de 1979, 8.036, de 11
de maio de 1990, 8.666, de 21 de junho de 1993, 8.987, de 13 de fevereiro de 1995;
revoga a Lei no 6.528, de 11 de maio de 1978; e dá outras providências.
FILHO, P. M. C. Plano Municipal de Saneamento Básico: História. Disponível por
http://pmsb106.ic.ufmt.br/sobre/. Acessado em: 12 de setembro de 2016.
GOMES, E. H. Disciplina de Banco de Dados - IFSP - Campus Cubatão. s/d.
Disponível por: http://ehgomes.com.br/disciplinas/bdd/. Acessado em: 10 de setembro
de 2016.
JYTHON. Disponível por: http://www.jython.org. Acessado em 10 de setembro de
2016.
MACEDO, M. H. B.; SALGADO, E. G. Gerenciamento de risco aplicado ao
desenvolvimento de software. Sistemas & Gestão, v.10. n.1, 2015.
MINISTÉRIO DA SAÚDE. FUNASA. Termo de referência para elaboração de planos
municipais de saneamento básico: procedimentos relativos ao convênio de cooperação
técnica e financeira da Fundação Nacional de Saúde – Funasa/MS. Brasília, 2012.
NETBEANS. NetBeans IDE - A Forma Mais Inteligente e Rápida de Codificar
Disponível por https://netbeans.org/index_pt_PT.html (acessado em 26 de agosto de
2016)
NIEDERAUER, J. Guia de Consulta Rápida: Integrando PHP 5 com MySQL. 2.ed.
Novatec: São Paulo, 2008.
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem
profissional. 8.ed. AMGH Editora Ltda: Porto Alegre-RS. 2016.
ROSSETTI, A. G.; MORALES, A. B.T. O papel da tecnologia da informação na
gestão do conhecimento. Ci. Inf., Brasília, v. 36, n. 1, p. 124-135, jan./abr. 2007
SILVA, C. E. C. M. Estágio em desenvolvimento web no LEMAF/UFLA. Relatório
de Estágio. Universidade Federal de Lavras. 2014.
40
TURBAN, E.; SHARDA, R.; ARONSON, J. E.; KING. D. Business Intelligence: um
enfoque gerencial para a inteligência do negócio. Bookman: Porto Alegre, 2009.
VASKEVITCH, D. Estratégias Cliente Servidor: um Guia para a Reengenharia da
Empresa. 1.ed. Berkeley: São Paulo,1995.