4 Sistema - Projetos

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO - CTC
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA - INE
SISTEMA DE ACOMPANHAMENTO DE
PROGRAMAS ASSISTENCIAIS – INFORMATIZAÇÃO DE
PREFEITURAS
BRUNO MUNHOZ MÜLLER
MONOGRAFIA DE CONCLUSÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO
Orientador: Prof. José Eduardo De Lucca
Florianópolis , 22 de novembro de 2007.
SISTEMA DE ACOMPANHAMENTO DE
PROGRAMAS ASSISTENCIAIS INFORMATIZAÇÃO DE PREFEITURAS
Trabalho de conclusão de curso apresentado
como parte das atividades para obtenção do
título de Bacharel, do curso de Sistemas de
Informação da Universidade Federal de Santa
Catarina.
Profª orientador: José Eduardo De Lucca
Florianópolis, 2007
RESUMO
Este trabalho faz parte de um grande projeto de incentivo ao uso de software livre nas
prefeituras brasileiras chamado Via Digital. A maioria das prefeituras brasileiras,
principalmente as de pequeno porte, estão estagnadas no ponto de vista de investimentos em
informatização na área de programas sociais. Muitas não possuem recursos financeiros,
humanos e tecnológicos para a reversão do quadro, afetando diretamente na qualidade e
quantidade dos serviços prestados à população.
A proposta concreta deste trabalho de conclusão de curso é validar e implementar um
módulo de software de acompanhamento de programas assistenciais. Uma empresa contratada
pelo Via Digital fez o levantamento de requisitos do software, cabendo a este projeto realizar
uma validação dos requisitos, tecnologias, funcionalidades e implementação do sistema.
Palavras-chave: sistemas assistênciais, prefeituras, Via Digital, Java, governo eletrônico,
software livre.
ABSTRACT
Versão em língua estrangeira do resumo. Obrigatório, pela ABNT..
LISTA DE ILUSTRAÇÕES
LISTA DE TABELAS
LISTA DE ABREVIATURAS E SIGLAS
SUMÁRIO
1
Introdução ............................................................................................................ 9
1.1
Justificativa ................................................................................................................. 10
1.2
Objetivos ..................................................................................................................... 10
1.2.1
Objetivos Gerais ......................................................................................................................... 10
1.2.2
Objetivos Específicos ................................................................................................................. 11
2
Referencial Teórico ............................................................................................ 12
2.1
Software Livre ............................................................................................................. 12
2.2
Via Digital .................................................................................................................... 13
3
Tecnologias ........................................................................................................ 14
3.1
Java ............................................................................................................................ 14
3.2
PostgreSQL ................................................................................................................ 14
3.3
Frameworks ................................................................................................................ 15
3.3.1
Hibernate .................................................................................................................................... 15
3.3.2
Struts .......................................................................................................................................... 16
3.3.3
Spring ......................................................................................................................................... 16
4
Sistema ............................................................................................................... 17
4.1
Abrangência e sistemas relacionados ......................................................................... 17
4.2
Casos de Uso do Sistema........................................................................................... 20
4.2.1
Cadastro Básico ......................................................................................................................... 20
4.2.2
Cadastros Gerais (Administrador) ............................................................................................. 21
4.2.3
Funcionalidades do Sistema ...................................................................................................... 21
Considerações finais .............................................................................................. 22
Anexos ..................................................................................................................... 24
1
INTRODUÇÃO
Sabe-se que novas tecnologias surgem a todo momento e entende-se que seu uso pode
resultar em benefícios incontáveis não só para os que usam dela diretamente como também
para toda a sociedade. Nesse sentido, o Estado e as prefeituras também podem utilizar das
tecnologias de informação de comunicação para melhorar o nível de prestação de serviços aos
cidadões, dar mais qualidade de vida à sociedade e otimizar o gasto público, centrodo-o nas
principais necessidades.
Quando um indivíduo, uma organização, ou mesmo o governo deseja usar um software
ou um programa qualquer, precisa pagar por ele. Todavia, mesmo pagando não detém sua
propriedade, mas apenas o direito de uso, com valor legal especificamente para uma
determinada máquina ou conjunto de máquinas. Isto significa que se o órgão comprador
possuir 100 computadores, serão necessárias 100 licenças, uma para cada máquina. Isto tem
elevado muito o custo com o pagamento das licenças, transferindo para poucos
desenvolvedores os direitos ao conhecimento.
Uma possível solução para esta problemática é a adoção dos Softwares Livres, que
possibilitam a redução dos custos com licenças devido ao seu caráter não-proprietário quando
comparado aos softwares comerciais comumente encontrados nas diversas instâncias
governamentais, incluindo os computadores dos milhões de alunos das escolas públicas.
Como a base de recursos disponíveis para o cumprimento das obrigações administrativas
e para investimentos é sempre menor do que aquilo que se deseja, e como há uma contínua
pressão social e política por recursos, é de se supor que aqueles com custos evitáveis serão
enfrentados pelos governantes e administradores. Assim, se existe a possibilidade de se
utilizarem softwares que no seu custo total serão mais baratos, certamente eles terão a
preferência sobre os mais caros.
1.1
Justificativa
A necessidade de fomento e incentivo à atuação de empresas e profissionais no setor de
prefeituras é patente. Apesar de o cidadão ter na prefeitura o primeiro ponto de contato com o
poder público, o serviço que ele obtém está aquém do que lhe é devido na grande maioria dos
municípios. Há muito poucas ofertas de software adequadamente preparados para prefeituras
neste momento e os setores carentes são diversos (assistência social, saúde, educação,
transporte, lazer, saneamento básico, urbanismo).
As universidades podem fazer parte de uma ação de apoio à formação de uma biblioteca
de software e componentes livres de aplicação em prefeituras, pois já há movimentações no
sentido de buscar o uso de software livre em muitas prefeituras.
A validação e implementação de um módulo de software que supra as necessidades do
setor de acompanhamento de programas assistenciais faz parte de uma grande iniciativa que
busca uma melhoria na qualidade dos serviços prestados pelas prefeituras, trazendo benefícios
para toda a população. Existe uma demanda de software para esse setor, mas não há
disponível no mercado soluções eficazes nas questões de usabilidade, confiabilidade,
portabilidade, manutenibilidade e principalmente custo.
1.2
Objetivos
1.2.1
Objetivos Gerais
Este trabalho pretende auxiliar o projeto Via Digital, possibilitando a inclusão digital de
prefeituras que pretendem informatizar o acompanhamento de programas assistências,
elevando a qualidade do atendimento prestado aos cidadãos. Por meio da geração de
relatórios, os responsáveis poderão assistir aos programas assistenciais, e tirar informações
que os auxiliarão em decisões. Bem como o acompanhamento dos serviços prestados pelo
órgão, ajudando como ferramenta de produtividade.
1.2.2
Objetivos Específicos
Por se tratar de um trabalho de conclusão de curso realizado em uma universidade federal
pública e gratuita, o projeto tem caráter de responsabilidade social e serve como forma de
retribuir para a sociedade o que foi aprendido na universidade.
O projeto serve também como forma de ampliação do conhecimento do proponente,
possibilitando o desenvolvimento de futuras aplicações no âmbito profissional e acadêmico.
Faz parte também do objetivo disponibilizar a solução de modo que seja integrável a
outros sistemas também em desenvolvimento pelo projeto Via Digital.
2
2.1
REFERENCIAL TEÓRICO
Software Livre
O termo Software Livre se refere à liberdade do usuário executar, copiar, distribuir,
modificar e aperfeiçoar o software. De acordo com a Free Software Foundation – FSF (apud
SILVEIRA, 2004, p. 13) o termo se refere a quatro tipos de liberdade para os usuários de
software:
●
A liberdade de executar o programa para qualquer propósito.
●
A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades.
●
A liberdade de redistribuir cópias de modo que posso ajudar ao seu próximo.
●
A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos, de modo que
toda a comunidade se benefici.
Quando um programa utiliza Software Livre seus usuários têm todas as liberdades acima
citadas. O usuário é livre, portanto, para usar, modificar, distribuir e aperfeiçoar o programa. É
essencial que se dê acesso ao código fonte do programa, escrito em linguagem de alto nível,
para que se faça valer esta liberdade. Os softwares proprietários têm estes acessos bloqueados,
ou são permitidos apenas os códigos binários, ilegível para os programadores (TAURION,
2004).
É importante observar que no caso da liberdade de redistribuir o programa o usuário que
o modificou pode cobrar pela distribuição, o que ele nao pode é impedir o acesso do novo
usuário ao código fonte ou formas binárias do programa nem cobrar licenças ou taxas pelo
uso, especialmente se está licensiado pelo GPL.
A liberdade inclui o fato ainda de que qualquer pessoa física ou jurídica pode utilizar o
software em qualquer tipo de sistema operacional, para executar qualquer trabalho ou
atividade sem que sejá necessário comunicar o desenvolvedor original ou outra entidade
especial (FSF, apud SILVEIRA, 2004).
2.2
Via Digital
O projeto Via Digital tem como proposta a criação de um repositório de componentes de
software livre para informatização de pequenas prefeituras brasileiras. Para a elaboração do
projeto foram consideradas as ameaças e oportunidades, fraquezas e pontos fortes.
A possibilidade de informatizar alguns municípios brasileiros tem um impacto social e
econômico grande para o país. Com a informatização, mas não só, espera-se contribuir para
uma melhoria da eficácia dos serviços públicos internos e externos à prefeitura, assim como
da transparência fiscal e utilização mais racional de recursos escassos disponíveis.
O núcleo central do projeto é a criação de um serviço auto-sustentável que integre uma
biblioteca de componentes e de software livres voltados à gestão municipal e que sirva de elo
entre prefeituras, desenvolvedores, empresas, instituições de apoio e universidades,
organizados em torno de modelos de negócio e interação baseados em software livre. Esta
biblioteca é ponto de referência para abastecer empresas com software livre pré-formatado
para necessidades comuns de prefeituras e componentes genéricos para montagem de sistemas
mais específicos, de acordo com características próprias dos municípios.
O serviço também foca na busca e difusão de informações sobre a dinâmica do software
livre, tanto para funcionários de prefeituras quanto para desenvolvedores, integradores e
fornecedores de soluções/serviços para o poder público., informações sobre licenciamento,
direitos autorais, modelos de negócio, modelos e ferramentas de desenvolvimento de software
e gestão de projetos, qualidade de software, capacitação etc.
O modelo completo criado é potencialmente reutilizável, no todo ou em partes, em outros
domínios de aplicação. Nele se prevê a organização dos atores em duas comunidades (com
áreas de intersecção): a comunidade de desenvolvimento e a comunidade de negócios.
3
TECNOLOGIAS
Este capítulo irá apresentar as tecnologias que serão utilizadas no trabalho.
3.1
Java
O modelo computacional para o desenvolvimento do Sistema foi construído a partir de
paradigma da orientação a objeto.
A metodologia de orientação a objetos define uma notação e um processo para a
construção de sistemas computacionais complexos. Realça a importância de extrair
explicitamente uma hierarquia de classes e objetos do sistema que está sendo modelado, bem
como a necessidade de visualizar, previamente, decisões que permitam a incorporação de
todos os atributos de um sistema complexo bem estabelecido (COURTOIS in LAPOLLI,
1994).
Java possui as características necessárias para implementação de um sistema completo
orientado a objetos. Diferentemente das linguagens convencionais que são compiladas para
código nativo, a linguagem Java é compilada para um código intermediário – chamado de
bytecode – que é executado por uma máquina virtual, a Java Virtual Machine (JVM). Esta
facilidade do código ser interpretado em tempo de execução faz com que a linguagem seja
independente de plataforma.
3.2
PostgreSQL
O SGBD escolhido para implementaçao do sistema é o PostgreSQL. Ele se destaca por
ser um um banco de dados com recursos avançados que normalmente só são encontrados em
softwares pagos. Alguns recursos disponíveis são integridade referencial, triggers, views,
controle de concorrência, procedures e a possibilidade de realizar consultas complexas.
3.3
Frameworks
3.3.1
Hibernate
Hibernate é uma ferramenta open source e pertence à JBoss Inc. Por se tratar de um
código aberto e de download gratuito, soluções podem ser criadas e ajustadas ou adicionadas
ao Hibernate, tornando esse framework robusto. O Hibernate permite trabalhar com
persistência sobre banco de dados, sem a necessidade de ter instruções SQL (Structured Query
Language) no meio do código Java, visto que a maioria dos desenvolvedores de sistemas opta
por utilizar bancos de dados relacionais. Os registros do banco de dados devem ser
transformados em objetos e as informações contidas nos objetos devem ser persistidas em
forma de linhas e colunas. Chamamos isso de “Mapeamento Objeto- Relacional”.
Hibernate fica posicionado como uma camada entre o aplicativo e o banco de dados,
tratando de carregar e salvar os objetos. A camada de Persistência é de suma importância, pois
ela é responsável por encapsular toda a lógica necessária para que um objeto ou uma coleção
de objetos sejam salvos ou recuperados de um meio de armazenamento. A utilização da
camada de Persistência faz com que o banco de dados seja mais confiável, pois isola as
operações que têm acesso direto ao banco de dados. A principal proposta do Hibernate é
prover aos desenvolvedores uma maneira de realizar o mapeamento de forma transparente,
isto é, através da criação de classes, como se não houvesse persistência relacional. O
Hibernate não provê apenas o simples mapeamento de uma classe para uma tabela, oferece
inúmeras vantagens para o desenvolvimento de aplicações, poupando grande parte do tempo
de programação de mapeamento Objeto/Relacional, sendo compatível com os principais
bancos de dados do mercado.
3.3.2
Struts
O Struts Framework é um projeto open source mantido pela Apache Software
Foundation,que foi desenvolvido com o objetivo de fornecer um framework para facilitar o
desenvolvimento de aplicações para a Web. Struts é uma implementação do design pattern
MVC (Model-View-Controller) para aplicações Java com a Internet. O objetivo do pattern
MVC é separar de maneira clara a camada de apresentação (View) da camada de negócio
(Model). Esse framework foi construído em Java e consiste numa camada de controle flexível
baseada nas tecnologias Java Servlets, Java Beans, Resource Bundles e XML. O Struts possui
um conjunto de regras definidas para delimitar as camadas de interface, lógica de negócios e
persistência, com o objetivo de integrá-las e permitir o desacoplamento entre a interface do
usuário, lógica de negócios e camada de Persistência, deixando que o desenvolvedor tenha o
controle do fluxo da lógica, ou seja, possua gerenciamento sobre problema.
3.3.3
Blabla
Spring
4
SISTEMA
O sistema aqui proposto busca prover uma solução de acompanhamento de programas
assistenciais oferecidos pelas Assistências Sociais das Prefeituras. Por meio da geração de
relatórios, os responsáveis podem assistir aos programas assistenciais, e tirar informações que
os auxiliarão em decisões. Bem como o acompanhamento dos serviços prestados pelo órgão,
ajudando como ferramenta de produtividade desta municipalidade.
4.1
Abrangência e sistemas relacionados
O sistema contém todos os Cidadãos que participam de programas assistenciais, os que já
participaram, e os que estão esperando para serem atendidos. Assim é possível ter dados
estatísticos tanto do Cidadão quanto da produtividade desta e de outras municipalidades.
Os cidadãos são cadastrados no sistema e fazem parte de um Núcleo Familiar, quando
eles estiverem participando de algum Programa Assistencial. Cada Núcleo Familiar tem um
responsável, o qual responde pelo Núcleo.
Os cidadãos podem ser transferidos entre Núcleos Familiares, entretanto só poderá
pertencer a um Núcleo concomitantemente.
Os programas assistenciais podem ser de dois tipos: Econômicos e Financeiros.
O Núcleo Familiar pode ser associado a Programas Assistenciais, sendo que poderá estar
vinculado a mais de um Programa Assistencial ao mesmo tempo.
Além do controle de cidadãos o sistema permite o controle dos Programas Assistenciais e
dos Profissionais responsáveis pelo atendimento e acompanhamento.
Com as informações podem ser avaliados os gastos com cada programa assim como o
número de beneficiários, entre outras informações. O Sistema deve gerar vários relatórios,
entre eles:
Relatórios Básicos
• Relatório/Listagem dos Usuários do Sistema;
• Relatório/Listagem dos Perfis
;
• Relatório/Listagem dos Núcleos Familiares;
• Relatório/Listagem de Cidadãos;
• Relatório/Listagem de Profissionais Sociais;
• Relatório/Listagem de Bairros;
• Relatório/Listagem de Eventos;
• Relatório/Listagem de Programas Assistenciais;
Eventos
• Relatório/Listagem de Registro de Eventos X Núcleo Familiar (Separados por
Eventos);
• Relatório/Listagem de Registro de Eventos X Cidadão (Separados por Eventos);
Relatórios de Benefícios
• Relatório/Listagem de Programas Assistenciais de um Cidadão;
• Relatório/Listagem de Programas Assistenciais de um Núcleo Familiar;
• Relatório/Listagem de Programas Assistenciais de um Bairro;
Beneficiários (Cidadão, Núcleo Familiar e Bairro) - Programas Assistenciais
• Relatório/Listagem de Cidadãos Beneficiários de um Programa Assistencial (Para
Programas Ativos);
• Relatório/Listagem de Cidadãos Beneficiários Diretos de um Programa Assistencial
(Para Programas Ativos);
• Relatório/Listagem de Cidadãos Beneficiários Indiretos de um Programa Assistencial
(Para Programas Ativos);
• Relatório/Listagem de Núcleos Familiares de um Programa Assistencial (Para
Programas Ativos);
• Relatório/Listagem de Bairros de um Programa Assistencial (Para Programas Ativos);
Benefícios dados pelos Programas Assistenciais: Programas Assistenciais, Bairro,
Núcleo Familiar e Cidadão
• Relatório/Listagem de Gastos dos Programas Assistenciais Financeiros X Período;
• Relatório/Listagem de Benefícios dos Programas Assistenciais Econômicos X Período;
• Relatório/Listagem de Gastos dos Programas Assistenciais Financeiros X Bairro X
Núcleo Familiar X Período;
• Relatório/Listagem de Benefícios Programas Assistenciais Econômicos X Bairro X
Núcleo Familiar X Período;
• Relatório/Listagem de Gastos dos Programas Assistenciais Financeiros X Núcleo
Familiar X Período;
• Relatório/Listagem de Benefícios dos Programas Assistenciais Econômicos X Núcleo
Familiar X Período;
• Relatório/Listagem de Gastos dos Programas Assistenciais Financeiros X Cidadão X
Período;
• Relatório/Listagem de Benefícios dos Programas Assistenciais Econômicos X Cidadão
X Período.
4.2
Casos de Uso do Sistema
4.2.1
Cadastro Básico
A figura abaixo demonstra os usuários do sistema e as interações que cada vai poder fazer
no sistema de cadastro.
Figura 1 – Diagrama de caso de uso – Cadastros Básicos
4.2.2
Cadastros Gerais (Administrador)
Figura 2 – Diagrama de caso de uso – Cadastros Gerais
4.2.3
Funcionalidades do Sistema
A figura abaixo demonstra a parte do sistema em que haverá as maiores interações por
parte dos usuários, fugindo do escopo de cadastro.
Figura 4 – Diagrama de caso de uso – Funcionalidades Gerais
CONSIDERAÇÕES FINAIS
Chamar esta parte de Conclusão ou Conclusões seria conclusivo demais  . É mais
aconselhável chamar de Considerações Finais.
REFERÊNCIAS BIBLIOGRÁFICAS
BECKER, Fernando, FARINA, Sérgio, SCHEID, Urbano. Apresentação de trabalhos
escolares. Orientação para datilografia e digitação. Porto Alegre: Multilivro, 2000.
ROCHA, José Antonio Meira da. Modelo de Trabalho de Conclusão de Curso (TCC).
Modelo de documento digital do programa OpenOffice 2.0 disponível em
<http://www.meiradarocha.jor.br/uploads/1021/196/modelo_de_projeto_de_TCC-2006-0612a.sxw>. Acesso em: 12 jun. 2006.
ANEXOS
Download