45
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

Universidade Federal de Mato Grosso - ic.ufmt.br · e de um sistema de formulários (para coleta e apresentação de dados). Neste sentido, criou-se um sistema baseado em softwares

  • 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.

26

Figura 7. Diagrama de Entidades e Relacionamentos (DER) do banco de dados.

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).

36

Figura 16. Página de relatório dos indicadores.

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.

41

ANEXO I. INDICADORES DE SANEAMENTO BÁSICO

UTILIZADOS NO PROJETO

42

Fonte: Banco de Dados PMSB-106

43

ANEXO II. FORMULÁRIO IMPRESSO DIRETAMENTE DO

SISTEMA

44

45