tcc a importancia da informatização no gerenciamento de uma associação de doadores de sangue
DESCRIPTION
Monografia do curso de Sistemas de Informação UnipacTRANSCRIPT
0
UNIVERSIDADE PRESIDENTE ANTÔNIO CARLOS – UNIPA C
FACULDADE REGIONAL DO ALTO SÃO FRANCISCO
CURSO DE SISTEMAS DE INFORMAÇÃO
AGUINALDO ALVES PINTO
BRUNO AMARANTE COUTO REZENDE
DOUGLAS ALEXANDRE DA SILVA
JÚNIO GERALDO DOS SANTOS
A IMPORTÂNCIA DA INFORMATIZAÇÃO NO
GERENCIAMENTO DE UMA ASSOCIAÇÃO DE
DOADORES DE SANGUE
BOM DESPACHO/MG
NOVEMBRO – 2009
1
UNIVERSIDADE PRESIDENTE ANTÔNIO CARLOS – UNIPAC
FACULDADE REGIONAL DO ALTO SÃO FRANCISCO
CURSO DE SISTEMAS DE INFORMAÇÃO
AGUINALDO ALVES PINTO
BRUNO AMARANTE COUTO REZENDE
DOUGLAS ALEXANDRE DA SILVA
JÚNIO GERALDO DOS SANTOS
A IMPORTÂNCIA DA INFORMATIZAÇÃO NO
GERENCIAMENTO DE UMA ASSOCIAÇÃO DE
DOADORES DE SANGUE
Monografia apresentada ao Curso de Sistemas de Informação da Universidade Presidente Antônio Carlos – UNIPAC, como requisito a obtenção do título de Bacharel em Sistemas de Informação, sob a orientação do Prof. Esp. Mateus Aparecido dos Santos.
BOM DESPACHO/MG
NOVEMBRO – 2009
2
AGUINALDO ALVES PINTO
BRUNO AMARANTE COUTO REZENDE
DOUGLAS ALEXANDRE DA SILVA
JÚNIO GERALDO DOS SANTOS
A IMPORTÂNCIA DA INFORMATIZAÇÃO NO
GERENCIAMENTO DE UMA ASSOCIAÇÃO DE
DOADORES DE SANGUE
Monografia apresentada à Universidade Presidente Antônio Carlos – UNIPAC, como requisito parcial para obtenção do grau de Bacharel em Sistemas de Informação.
BANCA EXAMINADORA
Orientador Prof.º Esp. Mateus Aparecido dos Santos
Universidade Presidente Antônio Carlos – UNIPAC
Avaliador Prof.º Ms. Eduardo Cardoso Melo
Universidade Presidente Antônio Carlos – UNIPAC
Avaliador Prof.º Esp. Edmilson Ferreira da Silva
Universidade Presidente Antônio Carlos – UNIPAC
Aprovada em______/______/______
4
AGRADECIMENTO
Agradecemos a Deus, nossa força constante.
Às nossas famílias, pela compreensão, carinho e apoio.
À Margarida Lelis e todos os funcionários da ADSBD, pelo incansável apoio.
Aos amigos e colegas pela paciência.
Aos nossos professores, Mateus, Tânia, João, Edmilson, Eduardo, Alessandro, Henrique, Wellington, Cristiano, Rodrigo, Bete, Gustavo, Elton, Samir, Elídio, Tchesco, Humberto e Alexandre pelos ensinamentos e amizade.
As namoradas pela compreensibilidade.
Por fim, a nossa “querida sede”, a casa do Aguinaldo.
6
RESUMO
As associações de doadores de sangue desempenham um papel importante no processo de
doação de sangue, promovendo a conscientização da população e auxiliando hospitais e
hemocentros a manter um nível suficiente de bolsas de sangue. Por não terem fins lucrativos,
estas entidades são categorizadas como do terceiro setor. Neste setor se enquadram as
entidades que realizam trabalhos sociais contribuindo com diversas áreas da sociedade. É
comum que estas entidades apresentem dificuldades no seu gerenciamento, devido ao grande
volume de informações manipuladas e à falta de meios eficazes para gerenciá-las. A partir de
um estudo de caso realizado junto a Associação dos Doadores de Sangue de Bom Despacho
(ADSBD) foram identificadas estas dificuldades e então apresentado como a informatização é
importante para o seu gerenciamento. Diante disso, foi desenvolvido, utilizando as técnicas da
Engenharia de Software, o ADSBD Manager, um sistema gerencial para auxiliar a
administração da entidade.
Palavras chaves: doação de sangue, terceiro setor, informatização, Engenharia de Software.
7
ABSTRACT
The associations of blood donors are an important role in the process of donation of blood by
promoting awareness of the population and helping hospitals and blood centers to maintain a
sufficient level of the blood reservations. Because of the non-profit objectives, these entities
are categorized as the third sector, in this sector are entities that perform social work
contributing to several problems in areas of the society. It is common that these entities have
difficulties in their management, because of the large number of information handled and the
lack of resources to manage them. From an analyzation of a case, done with the Association
of Blood Donors in Bom Despacho (ADSBD), these problems have been identified and then
displayed as the information is important to its management. In this way, was developed,
using the techniques of Software Engineering, the ADSBD Manager, a management system to
assists the administration of the entity.
Key words: Blood Donation, The Third Sector, Information, Software Engineering.
8
LISTA DE ILUSTRAÇÕES
LISTA DE FIGURAS
Figura 1: Metodologia em cascata.................................................................................... 33
Figura 2: Visão geral das fases propostas pelo modelo espiral........................................ 34
Figura 3: Processo de compilação de um programa Java................................................. 43
Figura 4: Plataformas do Java........................................................................................... 43
Figura 5: Tela do IDE NetBeans....................................................................................... 45
Figura 6: Tela principal do IBOConsole........................................................................... 46
Figura 7: Tela do DBDesigner.......................................................................................... 47
Figura 8: Especificação JPA............................................................................................. 49
Figura 9: Tela do IReports................................................................................................ 50
Figura 10: Tela de criação de um diagrama de seqüência................................................ 52
Figura 11: Diagrama de caso de uso: Caso de uso geral................................................... 57
Figura 12: Caso de Uso Cadastrar Doadores de Sangue................................................... 59
Figura 13: Diagrama de atividade cadastrar doadores de sangue..................................... 61
Figura 14: Diagrama seqüencia básica de Cadastro doador de sangue............................. 62
Figura 15: Diagrama de seqüencia de exceção................................................................. 63
Figura 16: Modelo de Domínio: Gerenciamento de Doadores e Colaboradores.............. 64
Figura 17: Modelo de Domínio: Gerenciamento de Atividades....................................... 64
Figura 18: Diagrama Entidade Relacional do ADSBD Manager..................................... 66
Figura 19: Diagrama de pacote: Arquitetura do software................................................. 67
Figura 20: Trecho de código da classe DAOGenerico...................................................... 69
Figura 21: Tela inicial ADSBD Manager.......................................................................... 71
Figura 22: Tela de cadastro de doadores........................................................................... 72
Figura 23: Tela de cadastro de colaboradores................................................................... 72
Figura 24: Tela de busca avançada de doadores............................................................... 73
Figura 25: Tela de controle de doações............................................................................. 73
Figura 26: Tela gerenciamento do projeto futuro doador................................................. 74
9
LISTA DE QUADROS
Quadro 1: Principais eventos relacionados a doação de sangue ocorridos no Brasil........ 20
Quadro 2: Comparativo entre OO e Programação Estruturadas....................................... 40
Quadro 3: Descrição dos Casos de Uso – Digrama Casos de Uso Geral.......................... 58
Quadro 4: Descrição do Caso de Uso Cadastrar Doador de Sangue................................. 60
LISTA DE GRÁFICOS
Gráfico 1: Evolução da quantidade de bolsas coletas e a quantidade utilizada em Bom
Despacho...........................................................................................................................
28
Gráfico 2: Ciclo de vida de um software sem um processo definido de
desenvolvimento ..............................................................................................................
31
Gráfico 3: Ciclo de vida aplicando técnicas da Engenharia de Software......................... 32
Gráfico 4: Resultado do questionário de usabilidade........................................................ 70
10
LISTA DE ABREVIATURAS E SIGLAS
ADOSARA - Associação de Doadores de Sangue Voluntários da Região da Amurel
ADSBD - Associação de Doadores de Sangue de Bom Despacho
AIDS – Síndrome da Imunodeficiência Adquirida
ANVISA – Agência Nacional de Vigilância Sanitária
API – Interface de Programação de Aplicativos
AWT – Abstract Window Toolkit
CASE – Engenharia de Software auxiliada por computador
CNAS - Conselho Nacional de Assistência Social
CPU – Unidade de Processamento Central
DER – Diagrama Entidade-Relacional
EJB – Enterprise Java Beans
ERP – Planejamento de Recursos Empresariais
GPL - General Public License
GPL – General Public License
HEMOBRÁS - Empresa Brasileira de Hemoderivados e Biotecnologia
HIV – Vírus da Imunodeficiência Humana
IBGE – Instituto Brasileiro de Geografia e Estatística
IDE – Ambiente Integrado de Desenvolvimento
IEC – Comissão Eletrotécnica Internacional
IPL – InterBase Public License
ISO – Organização Internacional para Padronização
JFC - Java Foundation Classes
JPA – Java Persistence API
JVM – Máquina Virtual Java
ODBC - Open Database Connectivity
OMS - Organização Mundial de Saúde
OO – Orientação a Objetos
PAC – Posto de Coleta Avançado
PDF – Formato de Documento Portável
PNVDS - Programa Nacional de Doação Voluntária de Sangue
POJO – Plain Old Java Object
POO – Paradigma Orientado a Objetos
11
PRÓ-SANGUE - Programa Nacional do Sangue
PSF – Posto de Saúde da Família
RAD - Rapid Application Development
SBHH - Sociedade Brasileira de Hematologia e Hemoterapia
SEFIP - Sistema Empresa de Recolhimento do FGTS e Informações à Previdência Social
SGBD – Sistema de Gerenciamento de Banco de Dados
SQL – Linguagem de Consulta Estruturada
SRS – Documento de Especificação de Requisitos
SUS – Sistema Único de Saúde
TI – Tecnologia da Informação
UML – Linguagem de Modelagem Unificada
XML – Extensible Markup Language
XP - Extreme Programming
12
SUMÁRIO
1 INTRODUÇÃO......................................................................... 14
1.1 Relevância do Projeto............................................................ 15 1.2 Problema e justificativa......................................................... 15 1.3 Objetivos do projeto............................................................... 16 1.3.1 Objetivo geral........................................................................ 17 1.3.2 Objetivos específicos............................................................. 17 1.4 Organização do projeto......................................................... 17
2 ASSOCIAÇÕES DE DOADORES DE SANGUE: CONTEXTUALIZAÇÃO............................................................
18
2.1 Considerações iniciais............................................................ 18 2.2 A doação de sangue no Brasil............................................... 19 2.3 – Organizações do terceiro setor: conceituação.................. 22 2.3.1 Associações de Doadores de Sangue.................................... 22 2.3.2 A Associação de Doadores de Sangue de Bom Despacho.... 26 2.4 Considerações finais............................................................... 29
3 TÉCNICAS E FERRAMENTAS PARA O DESENVOLVIMENTO DO ADSBD MANAGER...................
30
3.1 Considerações iniciais............................................................ 30 3.2 Engenharia de software......................................................... 31 3.3 UML......................................................................................... 36 3.4 Orientação a Objetos............................................................. 39 3.5 Tecnologias utilizadas............................................................ 41 3.6 Considerações finais............................................................... 52
4 METOLOGIA DE DESENVOLVIMENTO DO ADSBD MANAGER...................................................................................
53
4.1 Considerações inicial.............................................................. 53 4.2 Levantamento de requisitos................................................... 54
13
4.3 Análise de Requisitos e Projeto............................................. 54 4.3.1 Caso de uso: visão geral do sistema...................................... 56 4.3.2 Especificação do caso de uso Cadastrar doadores de Sangue............................................................................................
59
4.3.3 Modelo de Domínio.............................................................. 63 4.4 Análise Entidade-Relacional................................................. 65 4.5 Arquitetura do Software....................................................... 67 4.6 Implementação....................................................................... 68 4.7 Testes realizados......................................................... 69 4.8 Implantação............................................................................ 70 4.9 Apresentação do Sistema....................................................... 71 4.10 Considerações Finais............................................................ 74 5 CONSIDERAÇÕES FINAIS DO PROJETO......................... 75 5.1 Dificuldades enfrentadas....................................................... 75 5.2 Contribuições do projeto....................................................... 76 5.3 Trabalhos Futuros.................................................................. 76 5.4 Considerações finais............................................................... 77 REFERÊNCIAS........................................................................... 79
14
1 INTRODUÇÃO
A doação de sangue é um processo fundamental para a área da saúde, uma vez que
viabiliza vários procedimentos médicos. Devido ao elevado número de acidentes de trânsito,
doenças e processos cirúrgicos, a demanda de sangue vem crescendo em todo o mundo, sendo
comum deparar-se com situações nas quais ele está em falta. No Brasil, o percentual de
doadores de sangue está abaixo do recomendado pela OMS (Organização Mundial da Saúde)
e na tentativa de reverter este quadro, várias entidades do terceiro setor realizam um trabalho
de conscientização junto à sociedade, a fim de aumentar o número de doadores de sangue.
Entidades do terceiro setor não têm fins lucrativos e realizam diversos trabalhos de
cunho social, ajudando inúmeras áreas problemáticas da sociedade, incluindo-se a relativa à
doação de sangue. Sendo assim, as associações de doadores de sangue atuam como
facilitadoras do processo de doação, conscientizando a população e encaminhando doadores
aos hemocentros.
Este projeto mostra as necessidades gerenciais das associações de doadores de sangue
e aponta como a informatização pode trazer melhorias significativas para estas entidades.
Com o intuito de perceber estas necessidades, um estudo foi feito junto à Associação dos
Doadores de Sangue de Bom Despacho (ADSBD), localizada na cidade de Bom Despacho –
MG. Esta associação trabalha com grande volume de informações, pois, além de possuir um
cadastro de doadores de sangue e colaboradores financeiros, realiza o controle de uma série de
atividades internas.
Após a compreensão das necessidades gerenciais da ADSBD percebeu-se que a
implantação de um sistema informatizado auxiliaria, consideravelmente, a associação na
realização de suas atividades. Sendo necessário que o sistema realize buscas e atualizações de
cadastros de forma rápida e segura, proporcionando à entidade um ganho de eficiência e
tempo e que gere relatórios precisos em tempo hábil. A implantação do sistema traz um
aumento na disponibilização dos serviços e, conseqüentemente, facilita a ampliação do campo
de atuação da entidade.
Para se construir um software de qualidade, é preciso seguir os princípios da
Engenharia de Software, desde o levantamento de requisitos até a implantação. Então, a fim
de documentar e garantir confiabilidade, segurança e manutenabilidade a todo o software, o
desenvolvimento da aplicação gerencial para a ADSBD, o ADSBD Manager, seguiu estes
princípios.
15
O trabalho apresenta, portanto, um estudo sobre as necessidades gerenciais das
associações de doadores de sangue e as dificuldades enfrentadas neste processo. E, baseado
em um caso concreto, é desenvolvido um software para auxiliar no gerenciamento de uma
associação.
1.1 Relevância do Projeto
Conforme apresentado no tópico anterior, a doação de sangue se mostra um
procedimento importante para a sociedade. Porém conscientizar a população e, assim,
conseguir a quantidade adequada de doadores é algo complexo e que envolve um trabalho
muito grande. Na execução deste trabalho, destaca-se o papel das associações de doadores de
sangue, entidades sem fins lucrativos, que através do serviço voluntário desenvolvem projetos
e atividades para conscientizar a população da importância da doação de sangue.
A partir do estudo realizado junto a uma destas associações de doadores de sangue,
verificou-se que ela poderia ampliar consideravelmente suas atividades e projetos se seu
gerenciamento não fosse tão oneroso. Então, a fim de propiciar a esta entidade uma melhora
no seu gerenciamento foi proposto este trabalho, que além de pesquisas sobre doação de
sangue e terceiro setor, objetiva desenvolver um software que auxilie no gerenciamento desta
associação, facilitando seus procedimentos administrativos e possibilitando a ampliação de
seus projetos e atividades.
Esta ampliação de projetos e atividades é benéfica a toda sociedade, uma vez que o
percentual de pessoas conscientizadas e, conseqüentemente, o de doadores de sangue tendem
a crescer. Assim será possível que os estoques de sangue se mantenham sempre em um nível
bom, que atenda a demanda da população.
1.2 Problema e justificativa
As informações têm um papel fundamental para as organizações, e gerenciá-las de
modo eficiente é essencial para a conquista do sucesso. As organizações do terceiro setor não
são diferentes e precisam criar políticas para controlar suas informações, uma vez que lidam
com grande quantidade das mesmas. Estas entidades precisam ter um acesso rápido e um
controle muito grande sobre estas informações, para que consigam desenvolver suas
atividades e projetos.
16
Ao observar as associações de doadores de sangue, facilmente se identificam várias
informações manipuladas. São cadastros de doadores de sangue, controle de doações e
resultados de pesquisas de triagem. Controlar tantas informações se torna oneroso e
sobrecarrega os envolvidos no seu gerenciamento, além de dificultar o acesso às mesmas
dentro de um tempo hábil.
Diante da importância e da quantidade de informações, a maneira que vem se
mostrando mais eficiente para controlá-las é a utilização de sistemas informatizados. Estes
aplicativos são capazes de armazenar, manipular e disponibilizá-las a quem necessite, de
forma consistente e rápida. Pode-se afirmar que a utilização de softwares gerenciais é
essencial para que organizações atinjam seus objetivos e consigam consolidar-se no mercado.
Entidades do terceiro setor enfrentam obstáculos para a implantação de um software
gerencial, dos quais se destacam a falta de recursos financeiros para aquisição de um software
e a falta de aplicações que atendam as suas necessidades. Diante desta situação, a proposta
deste projeto, de estudar as necessidades gerenciais das associações de doadores de sangue e,
a partir de um caso real, desenvolver um aplicativo gerencial se mostra pertinente.
A partir do estudo realizado na ADSBD, percebeu-se que as principais dificuldades
apresentadas no seu gerenciamento estão relacionadas ao tempo gasto para o registro das
atividades internas, a busca e atualização de cadastros de doadores e colaboradores e a
produção de relatórios. Destaca-se também a complexidade para se produzir estes relatórios,
sendo necessário manipular grande quantidade de documentos.
Frente a estas dificuldades e a escassez de softwares destinados a estas entidades, o
desenvolvimento e a implantação de uma aplicação gerencial na ADSBD se mostra
importante para que a associação consiga otimizar seu gerenciamento e, assim, ampliar os
seus projetos. A utilização de um sistema informatizado resolve algumas dificuldades
apresentadas de maneira simples, como por exemplo, relatórios seriam gerados rapidamente,
sem a necessidade de ficar somando valores em vários formulários, diminuindo a margem de
erro. O tópico abaixo traz os objetivos explícitos deste projeto.
1.3 Objetivos do projeto
Esta seção apresenta os objetivos deste projeto, eles estão divididos entre os
específicos e um geral.
17
1.3.1 Objetivo geral
Adaptar os procedimentos gerenciais da Associação dos Doadores de Sangue de Bom
Despacho (ADSBD) ao uso de sistemas informatizados.
1.3.2 Objetivos específicos
• Desenvolver um sistema, o ADSBD Manager, utilizando técnicas da Engenharia de
Software, para auxiliar no gerenciamento da ADSBD;
• Mostrar a necessidade e a importância da informatização em uma associação dos
doadores de sangue;
• Descrever o impacto da informatização na ADSBD.
1.4 Organização do projeto
A fim de facilitar a compreensão do projeto, este trabalho foi elaborado em capítulos,
divididos conforme a abrangência de cada um.
O capitulo 2 apresenta a doação de sangue, seus procedimentos e a importância das
associações de doadores de sangue neste contexto. Descreve também a ADSBD e suas
necessidades gerenciais.
O capitulo 3 apresenta as tecnologias e ferramentas utilizadas no projeto de
desenvolvimento do ADSBD Manager, o sistema gerencial que auxiliará a ADSBD.
O capitulo 4 traz os passos do desenvolvimento do software, detalhando as etapas de
especificação de requisitos, modelagem da base de dados e desenvolvimento.
Por fim, o capitulo 5 traz as considerações finais mostrando dificuldades enfrentadas,
contribuições e possíveis melhorias para o projeto.
18
2 ASSOCIAÇÕES DE DOADORES DE SANGUE:
CONTEXTUALIZAÇÃO
Esta seção aborda a doação de sangue, contendo um breve histórico e uma descrição
da situação no Brasil e em Minas Gerais. Apresenta, também, a Associação de Doadores de
Sangue de Bom Despacho (ADSBD), entidade sem fins lucrativos, para qual foi desenvolvido
o software deste projeto. São mostradas suas necessidades, conquistas e sua importância para
a sociedade.
2.1 Considerações iniciais
A doação de sangue é considerada um procedimento fundamental para que os
profissionais da medicina possam salvar vidas. Como demonstra Moura et al (2006, p. 62), o
sangue captado nas doações, “é utilizado em diversas situações e doenças, como: cirurgias,
acidentes, anemias e outras”.
O processo de doação de sangue é um tanto complexo, uma vez que envolve doadores,
receptores, bancos de sangue, hospitais e as entidades filantrópicas que dão apoio a esta área.
De acordo com Gomes e Maia (2007) a doação é um grande processo divido em vários sub-
processos. Por exemplo, antes de efetuar a doação, o doador passa por triagens (clínica e
hematológica). Após a coleta, a bolsa de sangue passa por uma bateria de exames (hepatite,
HIV, chagas, entre outros) a fim de garantir a segurança do receptor. Cada bolsa coletada
possui um tempo limite para ser utilizada, este prazo se altera de acordo com os aditivos e
anticoagulantes utilizados, podendo variar de 21 a 42 dias.
Segundo Ludwig e Rodrigues (2005) o aumento da população mundial e os avanços
tecnológicos na área da medicina influenciam diretamente no aumento da demanda por
sangue, para tanto, exige-se que este tenha passado por exames que confirmem sua qualidade.
Este aumento na demanda está acontecendo em todo o mundo como evidenciado por Moura
et al (2006) ao afirmar que o crescente número de acidentes de trânsito, de doenças em geral e
de cirurgias são fatores que fazem esta procura crescer.
Levada por esta situação, a OMS observou ser importante estabelecer alguns critérios
para a doação e transfusão de sangue, e assim, definiu alguns parâmetros, como por exemplo,
que entre 3% e 5% da população de cada país deve ser considerada doadora voluntária de
sangue. A OMS acredita que com este percentual é possível atender a demanda atual. Na
19
Europa a média é de 5 doadores a cada 100 habitantes. Acredita-se que este elevado índice
(5% da população) se deve, entre outros fatores, ao fato do continente já ter passado por duas
grandes guerras e isso aumentou a solidariedade entre as pessoas (MOURA et al, 2006).
De acordo com Ludwig e Rodrigues (2005) o percentual de doadores voluntários de
sangue no Brasil, no ano de 2005, foi de 2,2%, índice abaixo do preconizado pela OMS. Entre
os principais obstáculos para se atingir o patamar desejado estão a dificuldade de
conscientização da população sobre a importância da doação, a falta de fidelidade dos
doadores, uma vez que muitos só realizam a primeira doação e não se tornam doadores
regulares, e o medo das pessoas em relação aos procedimentos para a coleta.
Com a intenção de facilitar o contato com doadores e com candidatos à doação,
existem associações de doadores de sangue espalhadas pelo Brasil. São entidades sem fins
lucrativos, que tem por objetivo facilitar o processo de doação de sangue, conquistar novos
doadores e manter aqueles já ativos. Após pesquisa junto à Sociedade Brasileira de
Hematologia e Hemoterapia (SBHH) e a Agência Nacional de Vigilância Sanitária
(ANVISA), constatou-se a não existência de estimativas sobre a quantidade de entidades com
este fim no Brasil.
2.2 A doação de sangue no Brasil
A doação de sangue no Brasil teve início efetivo em meados da década de 1920.
Segundo Gomes e Maia (2007), neste período eram realizadas apenas transfusões braço-a-
braço. Na década de 1940 aconteceram grandes evoluções como a criação do primeiro Banco
Nacional de Sangue, em 1943 e da Sociedade Brasileira de Hematologia e Hemoterapia
(SBHH), em 1949.
A primeira lei relacionada à doação de sangue foi sancionada em 1950, a Lei nº 1.075
que incentivava a doação voluntária de sangue. Atualmente a Lei nº 10.205, também
conhecida como “Lei do Sangue”, sancionada em 2001, regulamenta o processo e estabelece
os critérios de controle da doação de sangue e dos hemoderivados (GOMES E MAIA, 2007).
O QUADRO 1 apresenta os principais acontecimentos relacionados a doação de
sangue no Brasil.
20
QUADRO 1 Principais eventos relacionados a doação de sangue ocorridos no Brasil
Época Evento 1877
Década de 1920
Década de 1930
Década de 1940
1950
1965
1969
Década de 1970
1979
Década de 1980
1988
1998
2001
2004
Provável data da primeira transfusão de sangue, no Rio de Janeiro;
Doadores cadastrados, sangue não estocado e transfusões braço-a-braço;
Primeiro serviço organizado de transfusão de sangue, no Rio de Janeiro, transfusões braço-a-braço e sem exames de triagem no sangue do doador;
Primeiros bancos de sangue privados, remuneração pela doação de sangue, criação da Sociedade Brasileira de Hematologia e Hemoterapia (SBHH); Primeira lei federal, Lei nº 1.075 vigorou até 1964 e institui, entre outras coisas, o abono do dia de trabalho para doar sangue; Sancionada a Lei nº 4.071, dispõe sobre a atividade hemoterápica e é a base para a Política Nacional de Sangue;
A OMS realiza diagnóstico da situação da hemoterapia no país; Doadores de sangue em sua maioria remunerados; Sociedade Brasileira de Hematologia e Hemoterapia promove a doação voluntária de sangue; Criado o Programa Nacional do Sangue (Pró-Sangue) pelo Ministério da Saúde. Com o avanço dos casos de AIDS, aumenta a pressão nacional pela segurança transfusional; Constituição de 1988 veta a comercialização de sangue e hemoderivados;
Instituição da Meta Mobilizadora Nacional;
Sancionada a Lei nº 10.205, a Lei do Sangue;
Lei autoriza a criação da Empresa Brasileira de Hemoderivados e Biotecnologia (HEMOBRÁS).
Fonte: VERTCHENKO, 2005, p. 21 (adaptado). Segundo Vertchenko (2005), dentre os eventos citados no QUADRO 1 os abaixo
relacionados merecem maior destaque:
• a campanha de doação promovida pela SBHH, em 1979. Após a proibição da
remuneração pela doação, os estoques de sangue atingiram níveis baixíssimos e os
incentivos à doação voluntária cresceram;
• a criação do Pró-Sangue, em 1980. Este programa foi um marco no processo de
21
profissionalização da doação de sangue. Segundo Medeiros (2004) este programa
colocou um fim na mercantilização do sangue. Foi implantada uma rede de centros de
hematologia e hemoterapia nos estados e foi regulamentado o ressarcimento pelos
serviços prestados na coleta, processamento e transfusão do sangue, facilitando assim
a ampliação e a qualificação do processo de doação e transfusão de sangue;
• a instituição da Meta Mobilizadora Nacional, em 1998, pelo Ministério da Saúde. Foi
um ato visando garantir a qualidade em todo o processo de doação e transfusão de
sangue até 2003. Este é um grande projeto que engloba doze programas, merecendo
destaque o Programa Nacional de Doação Voluntária de Sangue (PNVDS), que tem
por objetivo aumentar a quantidade de doadores voluntários de sangue em todo o país.
A situação atual no Brasil não é muito favorável, ainda existe um déficit na relação
entre a quantidade necessária de bolsas e a quantidade coletada, porém uma melhora tem sido
notada ano a ano. O percentual de doadores voluntários, ou seja, pessoas que doam por boa
vontade, vem aumentando gradativamente, como demonstrado por Vertchenko (2005), em
1997 esse percentual era de 25%, já em 2002 chegou a 51% dos doadores. Isto mostra a
necessidade de se estabelecer políticas públicas sérias, como o PNDVS e a Meta
Mobilizadora, para tratar deste assunto tão importante para a sociedade, e assim atingir o nível
desejado de doadores no Brasil.
A estruturação da hemorrede pública em Minas Gerais iniciou-se em 1985, como fruto
do Pró-Sangue, com a criação da Fundação Centro de Hematologia e Hemoterapia de Minas
Gerais, o Hemominas, sendo instalado o hemocentro coordenador em Belo Horizonte. A
descentralização do serviço começou em 1987, para agilizar o processo e diminuir custos.
Para isto, o Hemominas estabeleceu convênios de cooperação mútua com prefeituras e
universidades em todo o estado (VERTCHENKO, 2005).
O Hemominas conta com 23 centros regionais, distribuídos pelo estado, e mantém
convênios com prefeituras e universidades. De acordo com a Fundação Hemominas (2009) a
ela é responsável por 87% das transfusões no estado, o restante é realizado em bancos de
sangue vinculados a hospitais particulares.
Em relação aos doadores, Minas Gerais se encontra numa situação semelhante ao
restante do país, faltam doadores voluntários. Vertchenko (2005) mostra que, apenas 1,11%
da população do estado doou sangue em 2002. Este percentual está abaixo da média nacional,
e do percentual preconizado pela OMS.
É importante que o Hemominas continue atuando e que amplie sua rede de convênios
22
para atingir o nível esperado de doadores e bolsas de sangue. Nesta ampliação da rede é
fundamental o relacionamento com as associações de doadores de sangue, uma vez que estas
entidades desempenham um papel importante na fidelização do doador e na conscientização
de mais pessoas, a fim de conseguir um número maior de doadores.
2.3 – Organizações do terceiro setor: conceituação
Soares, Catão e Santos (2004) definem organizações de terceiro setor como entidades
sem fins lucrativos que atuam nas áreas sociais, como a saúde, o lazer e o desenvolvimento
humano. Estas instituições apresentam um conjunto peculiar de características: não visam
lucratividade, não são governamentais, são organizadas, independentes, articuladas e
promovem os interesses coletivos.
Neste contexto é importante definir que o chamado primeiro setor, é o estado, a
administração pública e o segundo é o mercado, as organizações privadas, com fins
lucrativos. O terceiro setor é, portanto, uma nomenclatura utilizada para designar as
instituições que apresentam uma conjunção entre a finalidade do primeiro setor e a
metodologia de trabalho do segundo, ou seja, são agentes privados que agem para fins
públicos (AGUIAR E SILVA, 2001).
O gerenciamento das informações nas entidades do terceiro setor é complexo, devido
principalmente, à variedade de setores que elas atendem, ao fato de não existir uma
padronização nas informações que manipulam, uma vez que cada entidade busca se estruturar
da melhor maneira dentro de seu contexto. Por exemplo, ao se observar um grupo de
associações de doadores de sangue, é possível identificar formas distintas de gerenciamento.
Para minimizar essas dificuldades de gerenciamento, a utilização de sistemas
informatizados pode ser vista como uma possível solução. Um software facilita o fluxo das
informações dentro da entidade, dando maior consistência e confiabilidade nos procedimentos
administrativos.
2.3.1 Associações de Doadores de Sangue
As associações de doadores de sangue, como citado, desempenham um papel
importante no contexto da doação. Estas entidades, normalmente, são mantidas por doações
financeiras de cidadãos, empresas e em alguns casos, contam com um auxilio da
23
administração pública
Estas associação são criadas com o intuito de propiciar mais segurança e agilidade ao
processo de doação. Normalmente, elas mantêm um cadastro de doadores – o que facilita a
localização e o encaminhamento destes aos hemocentros; realizam atividades de
conscientização da população visando conquistar novos doadores e fidelizar os já ativos. O
grande objetivo destas entidades é auxiliar na manutenção de bons níveis nos estoques de
sangue.
De acordo com Moura et al (2006, p.62 apud Ministério da Saúde, 1998) o processo de
fidelização de doadores consiste em “mudar gradualmente o perfil do doador brasileiro e,
enfim, garantir a quantidade e qualidade do sangue”. Isso compreende um conjunto de
atividades voltadas para que o doador não realize somente a primeira doação e sim, para que
este se conscientize da importância da doação regular de sangue.
É fundamental para o sucesso de uma associação de doadores de sangue criar meios de
fidelizar os doadores. Porém definir esta estratégia não é tão simples. De acordo com Ludwig
e Rodrigues (2005) são vários os aspectos a serem observados nesta definição. É preciso
medir a reação (satisfação) dos doadores, ter um bom atendimento, oferecer serviços com
rapidez, cordialidade e resolver os problemas que surgirem. Outro ponto interessante neste
processo de fidelização é a divulgação das atividades, necessidades e conquistas da
associação, o que transmite uma idéia de transparência e comprometimento.
Algumas associações têm adotado técnicas de marketing para auxiliar na definição da
estratégia a ser adotada para a fidelização e conquista de novos doadores. Essas técnicas são
conhecidas como marketing social, que visam atingir o maior número de pessoas e fornecer
informações objetivas e de fácil compreensão. O Hemocentro de Cascavel, no Paraná, tem
obtido bons resultados com a implantação de modelos baseados no marketing social para a
divulgação de suas atividades. O hemocentro vem conseguindo erradicar a falta de doadores e
aumentar o percentual de doadores regulares e voluntários de sangue (MEDEIROS, 2004).
As associações de doadores de sangue desempenham, portanto, um relevante papel no
processo de coleta de sangue. Auxiliam hospitais e hemocentros, diminuindo,
consideravelmente, o fluxo de pessoas e documentos nestas organizações. Então, torna-se
necessário criar meios para o surgimento de novas associações e para que as já constituídas
melhorem a qualidade de seus serviços. Assim, será mais fácil que o Brasil atinja o percentual
e a qualidade desejada de doadores e bolsas de sangue.
24
• A importância da informação no contexto de uma associação de doadores de sangue
Segundo Freitas e Kladis (1995), as informações são conjuntos de dados processados
de maneira lógica e significativa, para que tenham um valor real no contexto organizacional.
Elas são recursos fundamentais dentro de qualquer organização, com ou sem fins lucrativos.
Daí a importância de se estabelecer uma política de informação consistente e adequada.
Afinal, informações bem construídas e bem apresentadas possibilitam vantagens competitivas
e facilitam os processos administrativos e de tomada de decisão dentro de qualquer
organização.
As associações de doadores de sangue trabalham com um fluxo considerável de
informações: são doadores, receptores, coletas e atividades gerenciais. Neste contexto, o
correto gerenciamento das informações traz benefícios como a facilitação e a diminuição do
tempo gasto com o seu gerenciamento, o aumento da segurança e da confiabilidade nas suas
atividades.
Para Vitorino, Costa, Kenchian (2008) a implantação de uma política de informação
na área da saúde deve considerar, além de outros fatores, os seguintes aspectos: segurança,
sigilo e acessibilidade. Em uma associação de doadores de sangue o sigilo dos dados sobre
doadores é fundamental, e deve ser bem implantado. Para evitar problemas com divulgações
indevidas e para melhorar a qualidade e a agilidade no gerenciamento é importante que essas
associações possuam recursos para implantar uma boa política de informação.
• A informatização do gerenciamento das associações
Os computadores e a informática, de um modo geral, são de grande valor para a
sociedade e estão presentes em diversos segmentos, desde os mais simples, como no lazer e
na comunicação entre pessoas até os mais complexos, como as cirurgias médicas. O processo
de informatização teve início na década de 1960 e continua evoluindo até os dias de hoje,
sempre buscando atender as necessidades das pessoas e organizações (SHIGUNOV NETO E
TEIXEIRA, 2006).
Dentro das organizações a utilização de sistemas informatizados tem se mostrado
muito eficiente no gerenciamento das informações. A utilização deste tipo de recurso se
destaca principalmente por suportar vários processos empresariais, como a tomada de decisão,
controle de estoque e pessoal e por dar confiabilidade e disponibilizar, em tempo adequado às
informações a quem necessite delas (FREITAS E KLADIS, 1995 apud BIO, 1991).
25
Nota-se a necessidade que as organizações, de um modo geral, têm, em aperfeiçoarem
seus procedimentos gerenciais para que consigam obter bons resultados. Este processo de
aperfeiçoamento tem passado, constantemente, pela implantação de sistemas informatizados,
uma vez que esses tornam menos onerosos os procedimentos, trazem maior confiabilidade,
agilidade e consistência às informações (SOARES, CATÃO E SANTOS, 2004).
Organizações do terceiro setor, como as associações de doadores de sangue, são
ambientes onde a implantação de sistemas informatizados se mostra viável, devido à
quantidade e ao fluxo de informações nelas. Porém, este processo esbarra em dois aspectos
relevantes. Primeiro, a falta de recursos financeiros destas entidades para a aquisição de um
software ou para a estruturação de um projeto de desenvolvimento de um. E, em segundo
lugar, a dificuldade de se encontrar sistemas que realmente atendam as suas necessidades.
• Softwares existentes para o terceiro setor
As entidades do terceiro setor têm apresentado uma demanda considerável por
softwares gerenciais. Esta procura vem aumentando porque, com a utilização de sistemas
informatizados, obtém-se um ganho de eficiência, confiabilidade, consistência e tempo. Nesta
perspectiva, foram pesquisados alguns softwares destinados para estas entidades.
Encontrar softwares destinados ao terceiro setor não é simples e entre os encontrados o
Master Manager ou Sistema de Gerenciamento de Fundações, desenvolvido pela Gemini
Sistemas foi o que mais se aproximou do ponto desejado. É um software destinado ao
gerenciamento de qualquer fundação. Sendo possível adaptá-lo ao modelo administrativo de
cada instituição. Possui também alguns módulos específicos, como o de gestão de projetos
que funciona integrado com o de gestão financeira e contábil, o que facilita o gerenciamento
de atividades mais específicas das organizações (GHIGNATTI, STEFFEN E TURCHETO,
2007).
Outro sistema é o Radar Empresarial, desenvolvido pela WK Sistemas. É um software
que segue a linha dos ERP’s, um conjunto de sistemas interligados para o gerenciamento
completo de uma instituição. É destinado a todas as organizações podendo ser adaptado a uma
entidade do terceiro setor. Possui um módulo para o gerenciamento de projetos, controlando a
parte financeira e de pessoal, que é um ponto interessante para o terceiro setor. Porém ele é,
assim como o Master Manager, um sistema pago, o que pode inviabilizar sua implantação em
algumas entidades (GHIGNATTI, STEFFEN E TURCHETO, 2007).
26
No que tange o gerenciamento de associações de doadores de sangue, foi identificado
um sistema específico desenvolvido pela Tecmedia Internet Design, de Santa Catarina. Na
realidade, a empresa desenvolveu um módulo baseado na sua plataforma de desenvolvimento,
que é responsável pelo cadastro dos doadores e das doações. O sistema é utilizado pela
Associação de Doadores de Sangue Voluntários da Região da Amurel (ADOSARA) situado
no município de Capivari de Baixo – SC. Os principais benefícios com a implantação do
sistema foram a facilitação do acesso aos doadores e a rapidez no encaminhamento destes às
solicitações dos hemocentros (PORTAL TECMEDIA, 2008).
Segundo Soares, Catão e Santos (2004) a falta de softwares destinados ao terceiro
setor é uma lacuna que deve ser preenchida o mais rápido possível pelos profissionais e
empresas de TI, a fim de possibilitar a entidades deste setor um melhor gerenciamento de suas
atividades e uma ampliação nos seus projetos.
2.3.2 A Associação de Doadores de Sangue de Bom Despacho – MG
O município de Bom Despacho, localizado no centro-oeste mineiro, a
aproximadamente 145 quilômetros de Belo Horizonte, tem uma população, segundo IBGE
(2007) de 42.460 habitantes. Na área da saúde, conta com 2 hospitais, sendo um particular e
outro conveniado ao SUS, 8 Postos de Saúde da Família (PSF), 1 policlínica, 1 centro de
saúde e 1 pronto atendimento (SIAB, 2008).
A população do município sofria com a falta de doadores aptos e disponíveis para
atender a demanda de sangue da cidade e também com a dificuldade para se deslocar até os
hemocentros para realizarem a doação, uma vez que o hemocentro mais próximo está sediado
em Divinópolis, a aproximadamente 80 quilômetros. Percebendo tal realidade e a gravidade
do problema enfrentado, no ano 2000, por iniciativa do então Vigário da Paróquia Matriz de
Nossa Senhora do Bom Despacho, Padre João Lúcio Gomes Benfica, iniciou-se uma
campanha para a fundação de uma associação que facilitasse o processo de doação de sangue
na cidade (REQUERIMENTO CNAS, 2007).
Então, com o propósito de fundar esta associação, foi realizada em 17 de maio de
2000, uma reunião pública na qual foi eleita uma comissão voluntária para a criação da
associação de doadores de sangue na cidade. O estatuto foi aprovado em 05 de fevereiro de
2001 e registrado em cartório em 03 de outubro do mesmo ano, sendo assim criada a
Associação dos Doadores de Sangue de Bom Despacho (ADSBD). A ADSBD tem por
27
objetivos principais facilitar o processo de doação de sangue, auxiliar as agências
transfusionais de Bom Despacho e região e promover a conscientização da população sobre a
importância de se doar sangue (ESTATUTO ADSBD, 2008).
A associação é composta por uma diretoria eleita a cada 2 anos e conta com uma
equipe de funcionários, alguns contratados, outros cedidos pela Câmara Municipal e, também
com voluntários, para a realização de suas atividades. Ela é mantida através de colaborações
financeiras. A quantidade de colaboradores gira em torno de 500, em algumas ocasiões, ela
recebeu repasse da administração pública estadual e municipal. Em 2008, a ADSBD possuía
2118 doadores de sangue cadastrados (RELATÓRIO ANUAL CIRCUNSTANCIADO ANO
BASE 2008, 2009).
Dentre muitas conquistas da associação, destacam-se a criação da Lei Municipal n°
1.876/2002, que estabeleceu a introdução do conteúdo programático multidisciplinar “doação
de sangue, tecidos e partes do corpo”, na Rede Municipal de Ensino; a conquista de uma sede
junto ao município e as 11 coletas de sangue realizadas na cidade, em parceria com o
Hemominas. A entidade foi reconhecida de Utilidade Pública Municipal pela Lei n° 1.880 de
01/04/2002, de Utilidade Pública Estadual pela Lei n° 16.275 de 18/07/2006 e de Utilidade
Pública Federal pela portaria n° 266 de 24/02/2006 (REQUERIMENTO CNAS, 2007).
A entidade vem pleiteando uma certificação junto ao Conselho Nacional de
Assistência Social (CNAS), que lhe permitirá receber subsídios do governo federal e, assim,
ampliar suas atividades e dar a elas uma maior qualidade. O processo está transitando desde
2007 no Ministério do Desenvolvimento Social e Combate à Fome, porém é muito complexo
e exige muitos requisitos, como o título de Entidade de Utilidade Pública Federal, o qual a
ADSBD já possui. A fim de manter este título, a entidade produz o Relatório Anual
Circunstanciado, que é enviado ao Ministério da Justiça, contendo todas as atividades
desenvolvidas. Este relatório é muito complexo e é produzido conforme o modelo enviado
pelo Ministério, que, normalmente passa por alterações todo ano (REQUERIMENTO CNAS,
2007).
Desde o seu surgimento, a ADSBD vem buscando conscientizar a população bom-
despachense sobre a importância da doação de sangue, para, assim, conseguir o número
necessário de doadores e bolsas. Vem desenvolvendo projetos, dos quais merece maior
destaque o Projeto Futuro Doador, que trabalha com as crianças e adolescentes nas escolas da
cidade, promovendo a conscientização destes. Desde o início de 2009 busca uma parceria com
o Hemominas para criar em Bom Despacho um Posto de Coleta Avançado (PAC), que
28
permitirá a realização de coletas mensais no município, o que facilitará para os doadores, uma
vez que não precisarão se deslocar para outras cidades.
Nos últimos anos a ADSBD tem conseguido alcançar a quantidade necessária de
bolsas para atender as necessidades do município, inclusive, em alguns anos foram coletadas
mais bolsas que o necessário, sendo essas repassadas a outros municípios. O GRAF. 1
apresenta a evolução da quantidade de bolsas coletadas. Em 2008, por exemplo, foram
coletadas 585 bolsas de sangue enquanto a demanda do município foi de 315. É clara a
melhora no processo de doação desde a criação da ADSBD e a sua importância para Bom
Despacho e região (RELATÓRIO ANUAL CIRCUNSTANCIADO ANO BASE 2008, 2009).
GRÁFICO 1 – Evolução da quantidade de bolsas coletas e a quantidade utilizada em Bom Despacho Fonte: RELATÓRIO ANUAL CIRCUNSTANCIADO ANO BASE 2008, 2009.
• A estrutura organizacional da ADSBD
As principais atividades administrativas da ADSBD estão relacionadas à manipulação
de informações cadastrais de doadores de sangue e colaboradores financeiros. São
gerenciadas, também, todas as doações de sangue realizadas por doadores cadastrados na
associação. Desta forma é possível manter um cadastro atualizado que permite identificar, de
maneira confiável, um doador ou colaborador.
O gerenciamento das atividades internas da associação é outro ponto importante. São
controladas 39 atividades, que vão desde o envio de correspondências até o gerenciamento do
número de bolsas coletas e utilizadas. Estas atividades são a base para a produção do
29
Relatório Circunstanciado Anual e obtenção de um monitoramento constante do nível de
qualidade dos serviços prestados pela entidade.
A produção de relatórios é outro ponto fundamental para o correto gerenciamento da
associação. São produzidos relatórios simples, como o de aniversariantes de um mês e
complexos como Relatório Circunstanciado Anual. A partir do resultado destes é possível
identificar falhas administrativas, estruturar rotinas de trabalho e planejar projetos da
instituição.
Neste tópico foram apresentadas as principais atividades administrativas da ADSBD, a
fim de elucidar sua metodologia de trabalho e permitir uma melhor compreensão do seu
funcionamento.
2.4 Considerações finais
Esta seção apresentou um histórico da doação de sangue, a situação no Brasil, em
Minas Gerais e também no município de Bom Despacho - MG. Sendo discutida a importância
e a posição das associações de doadores de sangue para a sociedade e como a informatização
pode auxiliar no gerenciamento destas. Por fim, foi apresentada a ADSBD, a associação de
doadores de sangue que será a base para o desenvolvimento deste projeto. Foram mostrados
seus objetivos, conquistas e funcionamento.
Os tópicos a seguir irão apresentar a estrutura, o desenvolvimento, os resultados e
possíveis melhorias para este projeto.
30
3 TÉCNICAS E FERRAMENTAS PARA O
DESENVOLVIMENTO DO ADSBD MANAGER
Esta seção aborda as técnicas utilizadas durante o desenvolvimento da aplicação,
contendo toda a linha de pesquisa, desde metodologias de desenvolvimento de software até as
ferramentas utilizadas. Sendo mostrado como os processos de desenvolvimento de software
podem ajudar na elaboração de projetos, além de demonstrar a importância da modelagem
UML e da análise de ferramentas de desenvolvimento para a construção de um software que
atenda a uma entidade do terceiro setor.
3.1 Considerações iniciais
A implantação de sistemas nas mais diversas áreas, tem se tornado cada vez mais
comum. E isso não é diferente dentro de uma associação de doadores de sangue. É importante
que sistemas voltados para o terceiro setor sejam desenvolvidos de forma a atender as
expectativas das organizações.
Quando falamos de sistemas de software, temos o conceito de que o software é apenas
o produto final, que passou do ambiente de produção para o ambiente comercial, mas não é
bem assim. O conceito de software é muito mais amplo, abrange toda a documentação,
arquivos de configuração e o conjunto de programas que são necessários para sua execução.
Software não é apenas o programa, mas também todos os dados de documentação e configuração associados, necessária para que o programa opere corretamente. Um sistema de software consiste, geralmente, de u m conjunto de programas separados; arquivos de configuração, que são utilizados para configurar os programas, documentação do sistema, que descreve a estrutura do sistema; a documentação do usuário, que explica como usar o sistema; e sites Web por meio dos quais os usuários obtêm informações recentes sobre o produto. (SOMMERVILLE, 2007, p 4).
Dada a complexidade e a amplitude de um software, estruturá-lo de uma forma
organizada e definir uma metodologia são fundamentais para se obter sucesso na implantação
de qualquer sistema, desde seu desenvolvimento até a aceitação do usuário. Nos tópicos
seguintes serão abordadas técnicas da engenharia de software e as ferramentas que foram
utilizadas durante as fases de elaboração, análise e desenvolvimento do projeto.
31
3.2 Engenharia de software
Engenharia de software pode ser definida como uma disciplina da engenharia que
aborda todos os aspectos do desenvolvimento do software, desde a concepção até a sua
implantação e manutenção (SOMMERVILLE, 2007). Esta disciplina tem por objetivo
auxiliar os engenheiros de software na elaboração de projetos mais concisos, aumentando
consideravelmente a qualidade do produto final.
A formação do conceito de engenharia de software começou a partir de 1968, após
uma conferência que tinha como objetivo discutir a chamada “crise do software”. Esta crise
ocorreu por que os equipamentos de hardware não acompanhavam a evolução dos softwares,
e estes, por sua vez, se tornavam cada vez mais complexos. A falta de padronização
dificultava ainda mais a manutenção destes no ambiente comercial. Nesta conferência foram
levantados vários aspectos referentes à produção de software e a partir destes conceitos foram
desenvolvidos, ao longo dos anos, várias técnicas que auxiliam os desenvolvedores no
planejamento e na execução de projetos de software.
A aplicação errônea ou a ausência destas técnicas no desenvolvimento tem custado
caro para as organizações. Para se ter uma idéia, uma aplicação que não segue os padrões de
desenvolvimento de software, geralmente consome cerca de 70% do tempo do seu ciclo de
vida com a manutenção. Isto mostra a importância da engenharia de software desde a fase de
levantamento de requisitos até a manutenção (Prado et al, 2005). O GRAF. 2 mostra o ciclo
de vida de um software sem um processo definido de desenvolvimento.
GRÁFICO 2 – Ciclo de vida de um software sem um processo definido de desenvolvimento Fonte: PRADO et al , 2005, p.5
Como podemos notar, a ausência das técnicas da engenharia de software tem impacto
direto nos custos e no tempo de desenvolvimento, sendo os maiores esforços concentrados na
32
fase de manutenção. Este esforço excessivo prejudica não só os projetos futuros, mas também
os que estão em andamento. Para diminuir este impacto, as organizações podem adotar
algumas metodologias, ou um conjunto delas, descritas pela engenharia de software, aliadas a
ferramentas que agilizam o desenvolvimento. O GRAF. 3 mostra um ciclo de vida de um
software com uma metodologia definida.
GRÁFICO 3 – Ciclo de vida aplicando técnicas da Engenharia de Software. Fonte: PRADO et al , 2005, p.5.
Para se obter sucesso na aplicação destas técnicas, deve-se levar em conta quais são os
modelos de processos adequados para o projeto em questão e quais as melhores práticas
devem ser efetivamente executadas, para garantir a qualidade e atender as expectativas das
organizações.
• Metodologia em Cascata
Segundo Tavares (2005), “o modelo em cascata consiste em um conjunto de técnicas
para fases particulares do processo de software”. Ou seja, cada etapa do desenvolvimento se
interage somente com a etapa posterior e esta só é iniciada quando a anterior é finalizada. Ao
término de cada etapa é gerada uma saída que será a entrada para a próxima fase. A FIG. 1
mostra as relações entre as etapas da metodologia em cascata.
33
FIGURA 1 – Metodologia em cascata. Fonte: VASCONCELOS et al , 2006, p.28.
O modelo em cascata separa muito bem cada fase de desenvolvimento. Na fase de
definição de requisitos são elucidadas todas as funcionalidades do sistema juntamente com o
cliente. A partir desta fase, a equipe de análise e projeto elabora as especificações, o sistema é
implementado e testado. O cliente só volta a ter contato novamente com a equipe na fase de
operação e manutenção.
Um dos pontos fortes da metodologia em cascata é a produção pesada de
documentação, que auxilia os analistas na modelagem e especificação dos requisitos. Dentre a
documentação produzida podemos destacar o documento visão e o documento de
especificação de requisitos de software (SRS). Cada um destes documentos expressa as
funcionalidades em uma perspectiva diferente. O documento visão apresenta um panorama
inicial do sistema em alto nível, de forma que todos os envolvidos no sistema compreendam.
Já o SRS é a declaração oficial do que os desenvolvedores do sistema devem implementar e o
que é esperado pelo cliente (CAVALHO, TAVARES e CASTRO, s/a).
Uma outra vantagem da metodologia em cascata é a flexibilidade para se adaptar a
outras metodologias da engenharia de software. Esta característica permite que as empresas
desenvolvedoras aproveitem as melhores práticas de um conjunto de outras metodologias,
criando um modelo híbrido adaptável à sua realidade.
Um dos grandes problemas em se aplicar esta metodologia está na divisão inflexível
do projeto em estágios distintos e nos custos elevados para sua execução. Como o
relacionamento com o cliente é feito apenas nas fases iniciais do desenvolvimento, isso causa
um congelamento prematuro dos requisitos, dificultado a identificação e a correção de erros
no projeto (SOMMERVILLE, 2007).
Durante a fase de coleta e análise de requisitos do ADSBD Manager, foram aplicadas
as técnicas da metodologia em cascata, por possuir boa carga de documentação,
34
proporcionando, assim, uma especificação detalhada de requisitos, expondo a todos os
envolvidos quais as funcionalidades do sistema.
• Metodologia em espiral
Com o aumento da complexidade e dos custos de produção, o modelo em cascata
estava se tornando um obstáculo para projetos de software, devido à sua rigidez entre fases e à
sua limitação em absorver mudanças de requisitos. A partir desta visão, iniciou-se, dentro da
engenharia de software, discussões sobre formas alternativas de desenvolvimento, que
resultou nos modelos iterativos.
A metodologia em espiral foi uma das primeiras técnicas desenvolvidas baseada na
evolução incremental do software. Em vez de se especificar todas as funcionalidades no início
do projeto, são planejadas uma série de iterações e, ao final de cada iteração, tem-se uma
porção da aplicação pronta para o ambiente comercial (VASCONCELOS, 2006). A FIG. 2
mostra uma visão geral da metodologia em espiral.
FIGURA 2 – Visão geral das fases propostas pelo modelo espiral Fonte: Sommerville, 2007
No desenvolvimento do ADSBD Manager, durante a fase de análise, desenvolvimento
e implantação foram utilizadas as melhores práticas da metodologia em espiral,
principalmente, por agregar aspectos gerencias ao processo de desenvolvimento, facilitando o
encontro e correção de erros, além de auxiliar no planejamento do projeto.
35
• Metodologia Extreme Programming (XP)
A Extreme Programming (XP) é uma das mais conhecidas metodologias ágeis. Este
tipo de abordagem surgiu na década de 1990, devido à insatisfação dos desenvolvedores com
a extensa documentação que era produzida, em virtude das metodologias existentes. Consiste,
basicamente, na abordagem interativa para a especificação, desenvolvimento e entrega do
software, tornando, assim, o trabalho da equipe de desenvolvimento focada apenas no
produto final, sem se preocupar com a documentação do projeto (SOMMERVILLE, 2007).
O processo XP é voltado para o desenvolvimento de softwares orientado a objetos,
com equipes pequenas e que dão suporte ao desenvolvimento incremental, ou seja, desde o
início do projeto são lançados pequenos releases até que se tenha um produto final completo.
As práticas pregadas pelo processo são: a integração do cliente com a equipe de
desenvolvimento; o aceite do usuário a cada novo release; a simplicidade de se implementar
estritamente o que o cliente necessita; a coragem de se produzir quase nenhuma
documentação e acreditar que o software será capaz de evoluir com segurança e agilidade
(TELES, 2006).
Segundo Astels (2002) a Extreme Programming agrega as dez melhores práticas de
um processo de desenvolvimento de software, sendo, assim, ideal para projetos que tenham
requisitos vagos e que mudam constantemente. Dentro dos seus princípios, um dos que mais
chama a atenção é a programação em pares: um desenvolvedor codifica e o outro age como
revisor, ajudando-o a encontrar e corrigir erros de ortografia e sintaxe, além de oferecer idéias
e sugestões. A interação da equipe leva à criação de padrões e à constante revisão do código
que também são pontos chaves do processo, o que torna o código mais enxuto e simples de
ser interpretado.
O que torna a XP difícil de ser executada, segundo Back (2004), é reunir todas as
peças e mantê-las unidas, uma vez que envolve a mudança de cultura da própria equipe, a
capacidade de cooperação e a integração de todos de forma harmônica. Outro ponto que pode
fazer a XP fracassar é a adoção de grandes times de desenvolvedores, clientes desconfiados e
tecnologias que não suportam efetivamente as modificações constantes no software.
Neste projeto, na fase de desenvolvimento do software, serão adotadas melhores
práticas da Extreme Programming, como, por exemplo, a programação em pares, que irá dar
um suporte para que se produza um software de qualidade, seguindo padrões na parte de
codificação e acelerando o desenvolvimento do projeto.
36
3.3 UML
A Unifield Modeling Language (UML) surgiu da necessidade de se padronizar a
modelagem orientada a objetos. Ela é uma união de três notações principais e de uma série de
técnicas de modelagem retiradas de várias metodologias utilizadas no mercado, desde a
década de 1970. Segundo Pender (2004) “a UML permite que os desenvolvedores de sistemas
especifiquem, visualizem e documentem os modelos de uma maneira que admita a
escalabilidade, a segurança e a execução robusta”, ou seja, eleva o nível de abstração por todo
o processo, facilitando a identificação de padrões de comportamento.
Neste contexto, um modelo pode ser entendido como uma forma simplificada e
abstrata de se representar uma situação concreta, servindo de referência para a realização de
estudos e análises. Com isso, a padronização destes modelos se mostra importante, uma vez
que facilita a compreensão de todos os envolvidos no processo de desenvolvimento de um
software.
A UML não é uma linguagem, portanto, ela pode ser adotada e adaptada para os mais
diversos processos de desenvolvimento de software. Seus diagramas abrangem várias
perspectivas de um sistema, o que torna a sua utilização bem flexível e robusta. As principais
visões da UML são assim definidas por Booch, Rumbaugh, Jacobson (2005):
• A visão de casos de uso descreve o comportamento do sistema visto pelos usuários
finais.
• A visão de projeto dá suporte aos serviços que o sistema deverá oferecer.
• A visão de interação cuida principalmente de questões referentes ao desempenho e
escalabilidade.
• A visão de implementação abrange os componentes e os artefatos do sistema.
• A visão de implantação aborda aspectos de distribuição, fornecimento e instalação do
sistema físico.
Os diagramas da UML serão amplamente utilizados neste projeto, a fim de prover uma
maior precisão e confiabilidade na análise de requisitos. A documentação do software
utilizará dos diagramas de casos de uso, pacote, atividade, seqüência e classes, uma vez que
abrangem as várias visões do sistema e proporcionam a todos os envolvidos, no sistema, uma
maior clareza das regras de negócio do mesmo. Os motivos que levaram à escolha destes
diagramas serão demonstrados a seguir.
37
• Diagrama de casos de uso
Os diagramas de casos de uso são utilizados para fornecerem visões dinâmicas do
sistema. Sua aplicação pode fornecer várias formas de visualizar um projeto.
Diagramas de casos de uso fornecem um modo de descrever a visão externa do sistema e suas interações com o mundo exterior, representando uma visão de alto nível de funcionalidade intencional mediante o recebimento de um tipo de requisição do usuário (FURLAN,1998, 169).
Desta forma, os diagramas de casos de uso descrevem os requisitos funcionais,
delimitando as responsabilidades e oferecendo possíveis situações do mundo real para o teste
do sistema.
Um modelo de casos de uso consiste basicamente na relação entre atores e casos de
uso. Os atores representam os usuários ou outros sistemas que irão interagir com o caso de
uso. Já os casos de uso mostram o comportamento do sistema, cenários que o sistema percorre
em resposta a uma ação do ator. (ALMEIDA, 2001).
Dentro do diagrama, o relacionamento entre um ator e um caso de uso representa a
participação deste no caso de uso. Entre os casos de uso, existem outras duas relações: a
relação de estender (representada pelo estereótipo <<extends>>) e a relação de incluir
(representada pelo estereótipo <<include>>). A relação de estender significa que, dentro do
caso de uso de destino pode ou não incluir aquele caso de uso, já a relação de incluir,
significam que o caso de uso de destino tem que ser executado para que o comportamento do
caso de uso de origem seja realizado (ALMEIDA E DAROLT, 2001).
• Diagrama de Classes
O diagrama de classes é usado, freqüentemente, em análises orientadas a objetos por
mostrar a visão estática de um projeto de software. Um diagrama de classes mostra um
conjunto de classes, interfaces, colaborações e seus relacionamentos, servindo de base para
uma série de outros diagramas, como o de componentes e o de implantação. Eles são
importantes não só para a visualização, a especificação, e a documentação de modelos
estruturais, mas também para a construção de sistemas executáveis utilizando a engenharia de
produção e a reversa (BOOCH, RUMBAUGH, JACOBSON, 2005).
38
A utilização do diagrama de classes dá suporte para os requisitos funcionais de um
sistema, ou seja, os serviços que o sistema deverá oferecer aos usuários finais. Sua aplicação
pode atingir desde a delimitação do vocabulário de um sistema até a modelagem de
colaborações simples e de banco de dados. Há quatro tipos principais de relacionamento no
diagrama de classes: generalização e/ou especificação (elementos indicadores de herança),
agregação (usada para denotar relacionamentos todo/parte), associação (usada para denotar
classes não correlatas) e dependência (indicando que um elemento é dependente do outro),
tendo, assim, todos os elementos semânticos para uma compreensão do domínio da aplicação
(FURLAN, 1998).
• Diagramas de seqüência
O diagrama de seqüência é classificado como um diagrama comportamental, ou seja,
representam como os objetos se comportam utilizando a estrutura já definida em outros
diagramas. Esta capacidade dinâmica pode abranger de que forma o sistema responde depois
de uma ação do usuário. Representado como o sistema mantém a integridade interna dos
dados, como estes são movidos do armazenamento para uma visão do usuário (PENDER,
2004).
O diagrama de seqüência dá ênfase à ordenação temporal das mensagens, sendo
utilizado não só para a visualização, especificação, construção e documentação, mas também
para fazer a modelagem de um fluxo de controle de um caso de uso e auxiliar na construção
de sistemas executáveis (BOOCH, RUMBAUGH, JACOBSON, 2005).
• Diagramas de atividades
O diagrama de atividades é visto como parte da visão funcional de um sistema, pelo
fato de descrever processos lógicos ou funções. Ele foi projetado para dar suporte à descrição
dos comportamentos que dependem dos resultados de processos internos (PENDER, 2004).
Os diagramas de atividades são utilizados para detalhar classes, implementação de operações
e casos de uso, representando o que acontece e não quais os responsáveis pela ação
(ALMEIDA e DAROLT, 2001).
Um diagrama de atividades captura o funcionamento interno de um objeto, suas ações.
Além de mostrar como um processo de negócio funciona em termos de atores, fluxo de
trabalho, organização e objetos. Também é utilizado para mostrar como uma instância de caso
39
de uso pode ser realizado em termos de ações e mudanças de estado de objetos, demonstrando
como um conjunto de ações relacionadas podem ser executadas, dentre inúmeras outras
utilidades (FURLAN, 1998).
• Diagrama de pacotes
Os diagramas de pacotes fornecem uma visão de toda a arquitetura do sistema,
disponibilizando uma maneira diferente de organizar os componentes. Normalmente são
utilizados para agrupar quantidades consideráveis de classes, interfaces, componentes, nós,
diagramas e outros elementos, facilitando a compreensão geral do sistema.
Um pacote pode ser definido como um “mecanismo de propósito geral para a
organização do próprio modelo em uma hierarquia; ele não tem nenhum significado para a
execução.” (BOOCH, RUMBAUGH, JACOBSON, 2005), ou seja, o pacote é apenas uma
forma diferente de organizar seus componentes, sem valor para sua execução. O pacote deve
ser criado para agrupar elementos da arquitetura semelhantes, podendo conter desde classes e
interfaces até outros pacotes. Devem ser estabelecidos também um nome, seus elementos e
sua visibilidade, facilitando o entendimento do domínio da aplicação.
A vantagem de se utilizar este tipo de abordagem é que, diante de um sistema com
uma quantidade relativamente grande de componentes, pode-se modelar a sua arquitetura em
um diagrama, permitindo a todos os envolvidos uma visão geral do sistema, desde a
visibilidade até os relacionamentos entre eles.
3.4 Orientação a Objetos
A orientação a objetos começou a ser utilizada em maior escala na década de 1980,
trazendo uma nova maneira de analisar, projetar e desenvolver sistemas. Esta nova forma
aborda o desenvolvimento de sistemas de um modo mais abstrato e genérico. Os grandes
benefícios em relação à orientação estruturada, que era a mais utilizada até aquele momento,
são o reaproveitamento de código e a facilidade de manutenção (SIMOR e DORNELES,
2009).
O conceito deste paradigma está no objeto, sendo seus processos embasados na
representação computacional de objetos reais e de seus relacionamentos. Segundo Simor e
Dorneles (2009) a orientação a objetos busca representar, do modo mais fiel possível,
situações do mundo real no ambiente computacional.
40
Os processos do desenvolvimento orientado a objetos, conforme citado, são baseados
nos objetos e seus relacionamentos. Porém é importante destacar a existência de classes, estas
definem os objetos presentes no sistema e determinam o comportamento, os possíveis estados
e os relacionamentos destes. Desta forma cada objeto é, na realidade, uma instância de uma
classe (CEUNES PROGRAMAÇÃO III, s/a).
Baseado em CEUNES Programação III (s/a), os benefícios da utilização da orientação
a objetos são a centralização de dados e funções em uma única unidade do sistema (objeto); a
reutilização de código (herança) – permite um ganho significativo de tempo e custo no
desenvolvimento; o ocultamento de informação (encapsulamento) – uma classe acessa apenas
a interface de outra, evitando erros acidentais; manutenabilidade – o sistema não fica
acoplado, o que facilita a manutenção.
É comum deparar-se com questionamentos sobre a vantagem da utilização da
orientação a objetos em relação à estruturada. O QUADRO 2 traz um comparativo, onde é
possível perceber a metodologia e as técnicas de ambos os paradigmas.
QUADRO 2 Comparativo entre OO e Programação Estruturada
Programação Estruturada (Procedimental) Programação OO
• Ênfase: construção de algoritmos;
• Utiliza abordagem de refinamentos sucessivos;
• Subproblemas são codificados como unidades denominadas procedimentos, sub-rotinas ou funções;
• Unidades de programa podem ser agrupadas em módulos;
• Programa resultante consiste de uma coleção de unidades que se comunicam entre si;
• Visão top-down; • Forte uso de Decomposição Funcional; • O sistema é composto por dados e
funções, tratados separadamente, mas que podem interagir.
• Programas muito grande tornam-se muito complexos e difíceis de entender e manter;
• Dificuldade em modelar muitos problemas da vida real com enfoque em algoritmos;
• Metodologia desenvolvida objetivando suprir deficiências encontradas em programação algorítmica;
• Encapsulamento: combinação de dados (atributos) e funções (métodos) numa única entidade de programa;
• Objeto: entidade de encapsulamento; • Um programa no paradigma POO
consiste de vários objetos que se comunicam (isto é, trocam mensagens) entre si utilizando seus métodos constituintes;
• Visão de Objetos cooperativos; • As características de comportamento
e informações são modeladas de maneira fortemente relacionadas;
• O sistema é composto por objetos, que contêm dados e funções (isto é, estão reunidos em um só elemento).
• Ocultação de Informação: métodos que fazem parte de um objeto provêem (usualmente) a única forma de acesso
41
• É mais fácil simular o funcionamento de sistemas complexos com enfoque em suas partes constituintes do que em termos dos algoritmos utilizados pelo sistema.
• Linguagens procedimentais não oferecem facilidades para criação de novos tipos de dados que funcionem como os tipos de dados primitivos.
aos seus dados, campos de um objeto não podem ser acessados diretamente, apenas indiretamente por meio de seus métodos constituintes, prevenindo alterações acidentais de dados e facilitando a manutenção e depuração dos programas.
Fonte: CEUNES - PROGRAMAÇÃO III, s/a, página 13 (adaptado).
Diante deste quadro é possível perceber vantagens significativas da utilização da
orientação a objetos, principalmente em softwares maiores. Várias linguagens de
programação seguem este paradigma, C++, C#, Java, Object Pascal, Objective-C, Python,
Ruby e Smalltalk são bons exemplos. O próximo tópico traz detalhes da linguagem Java, na
qual este projeto esta sendo desenvolvido.
3.5 Tecnologias utilizadas
Para a produção de um software é necessário valer-se de um conjunto de tecnologias e
ferramentas apropriadas, a fim de propiciar agilidade, confiabilidade e produtividade na
execução do seu desenvolvimento. Com o aumento da complexidade no desenvolvimento de
software, surgiram várias ferramentas que auxiliam os desenvolvedores durante todo o ciclo
de vida da aplicação.
Estas ferramentas são classificadas como CASE (Computer Aided Software
Engineering) e podem ser utilizadas desde a análise até a implantação de um projeto de
software. Ferramentas Case pode ser definida como “Um produto de software que pode
auxiliar engenheiros de software através do apoio automatizado para atividades do ciclo de
vida de software conforme definido na ISO/IEC 12207 (KIDO, HIRAMA, 2008, p.3 apud
ISO, 1995).
As ferramentas Case podem ser classificadas de acordo com as áreas nas quais atuam,
dentro de um ciclo de vida de um software. Segundo Summerville (2007), esta classificação
pode ser feita conforme uma perspectiva funcional, de processo ou de integração. Na
perspectiva funcional, cada ferramenta é classificada de acordo com a sua função específica
no processo. Na perspectiva de processo, são consideradas as atividades de apoio que
fornecem. Já na perspectiva de integração a classificação é feita de acordo com o conjunto de
42
unidades integradas a uma ou mais atividades do processo.
Um dos grandes benefícios da utilização das Ferramentas Case é a redução do tempo
de desenvolvimento, pois fornecem suporte para a produção automatizada de documentação,
além de facilitar a compreensão geral dos requisitos do projeto. Outra vantagem é que, a partir
da análise de um projeto, é possível gerar softwares automaticamente, reduzindo o tempo e a
complexidade da implementação de um sistema.
Esta seção aborda as tecnologias utilizadas para o desenvolvimento do ADSBD
Manager. São apresentadas as ferramentas utilizadas em cada camada do software, desde a
persistência até a própria implementação do sistema.
• Linguagem Java
O paradigma de orientação a objetos é um dos modelos de programação mais
discutidos na área de desenvolvimento. A partir desta discussão, surgiram várias linguagens
que suportam este paradigma, podendo citar o C++, C#, Java, dentre outras. A principal
característica destas linguagens é permitir a reutilização de código, facilitando o processo de
produção de software.
A linguagem Java surgiu a partir de um projeto, desenvolvido pela Sun Microsystems,
chamado Green Project, que tinha como motivador a criação de tecnologias para a fabricação
de dispositivos eletrônicos inteligentes para o consumidor final. Em 1995, a Sun anuncia o
Java como plataforma de desenvolvimento, o que despertou o interesse da comunidade
comercial, devido á popularização da internet. Com o amadurecimento da linguagem, a sua
segunda edição oferece uma série de recursos que possibilita desenvolver desde aplicativos
corporativos de grande complexidade até softwares voltados para o consumidor final
(DEITEL E DEITEL, 2005).
Um grande diferencial da linguagem Java em relação a outras linguagens é o seu
processo de compilação: o compilador Java gera os Bytecodes (arquivos compilados), que no
momento da execução, serão interpretados pela máquina virtual Java (JVM). A JVM é uma
camada que faz a comunicação entre os programas Java e o sistema operacional, garantindo
assim sua portabilidade . A FIG. 3 mostra o processo de compilação de um programa Java.
43
FIGURA 3 – Processo de compilação de um programa Java
Fonte: Ruiz, 2008
A plataforma Java, por se tratar de uma linguagem muito ampla, abrange 3 versões
principais: uma versão voltada para dispositivos móveis, outra voltada para desenvolvimento
desktop e outra para aplicações corporativas. A FIG. 4 mostra a arquitetura de
desenvolvimento Java.
FIGURA 4 – Plataformas do Java
Fonte: Coura, 2009
o Micro Edition (J2ME): Esta versão é voltada para desenvolvimento de aplicações para
dispositivos móveis, tais como celulares, PDA’s, smartfones, dentre outros. Esta
plataforma é responsável pela produção de softwares com recursos limitados, ou seja,
controla de forma eficaz os recursos disponíveis, para conseguir o melhor desempenho
da aplicação;
o Standard Edition (J2SE): Esta versão propicia recursos para o desenvolvimento de
aplicações para desktops. Ela contém todas as API’s básicas para o desenvolvimento
de aplicações, incluindo suporte para a criação de interfaces gráficas.
o Enterprise Edition (J2EE): Esta versão é voltada para desenvolvimento de aplicações
corporativas e todo o suporte á comunicação em rede. Esta versão abrange a
plataforma J2SE e mais um conjunto de especificações e bibliotecas que fornecem
recursos para a criação de aplicações.
44
Além de disponibilizar uma série de recursos para as mais diversas áreas de
desenvolvimento, Java fornece algumas API’s para desenvolvimento de interfaces gráficas.
Uma das primeiras desenvolvidas foi a AWT (Abstract Window Toolkit), que utiliza as
definições do sistema operacional na qual a aplicação está sendo executada. O grande
problema em se utilizar esta API é a dificuldade de padronização das interfaces, uma vez que
a aplicação teria comportamentos diferentes em cada sistema operacional.
Posteriormente, como alternativa para desenvolvimento de interfaces, foi criado um
grupo de componentes gráficos denominado Swing, pertencente á JFC (Java Foundation
Classes), que não chega a substituir o AWT, mas estende alguns recursos. Com isso,
possibilita que as interfaces das aplicações permaneçam inalteradas, independente de
plataforma (COURA, 2006).
• IDE NetBeans
Segundo SANTOS (2007), um IDE (Integrated Development Environment) de
desenvolvimento pode ser definido como “um programa de computador, geralmente utilizado
para aumentar a produtividade dos desenvolvedores de software, bem como a qualidade
destes produtos”. A utilização deste tipo de programa está cada vez mais presente no ambiente
de desenvolvimento das empresas, devido à grande facilidade de se integrar ferramentas para
a aplicação de técnicas que facilitam a implementação de softwares.
Já as ferramentas de desenvolvimento rápido (RAD - Rapid Application Development)
surgiram a partir de um modelo de processo de software iterativo, na qual a fase de
desenvolvimento é bem reduzida. Hoje existem IDE’s que também oferecem recursos da
tecnologia RAD, disponibilizando um editor de código-fonte, um compilador e um debugador
– responsável por auxiliar no processo de encontrar e corrigir erros do software (RIBEIRO e
SILVA, 2008). A FIG. 5 traz uma tela do NetBeans.
45
FIGURA 5 – Tela do IDE NetBeans Fonte: SANTOS, 2007. O IDE Netbeans é um software livre, de código aberto e que suporta várias linguagens
de programação. Possui um editor de código-fonte e um destinado a criação de interfaces
gráficas. As principais vantagens de se utilizar o Netbeans são: a facilidade de instalação e
configuração; suporte as principais aplicações Java; auto-configuração de variáveis de
ambiente; facilidade de deploy da aplicação (passagem para produção) e a disponibilidade
para várias plataformas. Suas principais desvantagens estão relacionadas ao uso de memória,
exigindo no mínimo 512 MB, e uso excessivo da CPU (HIRAGI, 2006).
• Firebird
Um sistema de gerenciamento de banco de dados fornece operações de inserção,
alteração, exclusão, obtenção e atualização de dados relativos ao sistema de forma segura e
garante a integridade dos dados. Sua utilização traz inúmeros benefícios, tais como: eficiência
no acesso aos dados, redução do tempo de desenvolvimento de uma aplicação, controle de
acessos concorrentes, além da garantia de segurança e consistência dos dados (DURÃES,
2007).
O Firebird é um sistema de gerenciamento de banco de dados (SGBD) que surgiu a
partir do código fonte do InterBase, disponibilizado pela Borland, através de licença pública
46
em 25 de julho de 2000. Ele é mantido por programadores do mundo inteiro que dão a sua
contribuição, continuando o projeto e sua filosofia de software livre (BANDEIRA, s/a).
A primeira versão oficial do Firebird foi lançada em março de 2002, licenciada pela
IPL (InterBase Public License), sendo compatível com o padrão ANSI-SQL 92. Contando
com o tempo de desenvolvimento, ele está a mais de vinte anos em operação. Diversas
organizações utilizam-no, podendo citar a Embrapa, que implantou um software que tem a sua
arquitetura cliente/servidor centrada no Firebird; a Caixa Econômica Federal, através do
software SEFIP, dentre inúmeras outras. Isso mostra a estabilidade e a confiabilidade desta
ferramenta (FREITAS, 2007).
• IBOConsole
Para facilitar a manipulação de dados no SGBD Firebird, existem várias ferramentas
que auxiliam o desenvolvedor na administração de banco de dados. O IBOConsole é
considerado um ambiente de desenvolvimento integrado (IDE), voltado para a administração
dos SGBD’s Firebird e InterBase. Ele integra uma série de ferramentas que permitem o
gerenciamento de várias bases de dados de forma gráfica, agilizando o processo de criação e
manipulação dos dados (NASCIMENTO, FALCÃO e CUNHA, 2006). A FIG. 6 mostra uma
tela do IBOConsole.
FIGURA 6 – Tela do IBOConsole Fonte: Nascimento, Falcão e Cunha, 2006.
47
Dentre os vários recursos disponibilizados pelo IBOConsole para a criação e
manipulação de dados podemos citar o editor visual para consultas SQL, um depurador de
procedimentos de armazenamento e gatilho, dentre outros. Outra vantagem do IBOConsole é
que, por ser um software livre, possui seu código aberto e não é necessário adquirir uma
licença para uso comercial.
• DBDesigner
Existem várias ferramentas para modelagem de banco de dados disponíveis no
mercado. Uma delas é o DBDesigner, que foi desenvolvido sob a licença GPL (General
Public License) com o propósito de auxiliar projetos de banco de dados, possibilitando a
criação de diagramas entidade-relacional, demonstrando os relacionamentos entre tabelas
(ARAÚJO, 2009). A figura abaixo mostra a tela inicial da aplicação (FIG 7).
FIGURA 7 – Tela do DBDesigner Fonte: http://www.revistaphp.com.br/arquivos/Image/flavia/p1.jpg Essa ferramenta oferece integração a diversos SGBD’s existentes no mercado, desde
que seja permitido o seu acesso via ODBC (Open Database Connectivity), o que possibilita a
sua utilização integrada ao SGBD Firebird. Por se tratar de uma ferramenta eficiente para a
modelagem de dados, sua utilização possibilita desenvolver modelos lógicos e físicos de um
banco de dados. Ele permite criar regras de integridade oferecendo suporte à engenharia
reversa e, o sincronismo entre o modelo entidade-relacional e a base de dados (ARAÚJO,
2009).
48
• JPA
Sem dúvida, uma das áreas mais críticas do desenvolvimento de softwares orientados
a objetos é a persistência de dados em banco de dados relacionais. Cerca de 30% do código da
aplicação se refere à persistência de dados. Com isso, surgiram duas abordagens principais
para sanar este problema: criação de banco de dados orientado a objetos e frameworks para
fazer o mapeamento objeto-relacional (SILVEIRA, 2006).
Os bancos de dados orientados a objetos, apesar de estarem em discussão no meio
acadêmico, ainda não estão sendo aplicados no mercado. Um dos motivos é a dificuldade de
transição de dados entre os bancos relacionais e os orientado a objetos, uma vez que a maioria
das bases de dados atuais são relacionais, tornando-se inviável a sua utilização,
principalmente no meio comercial.
O mapeamento objeto-relacional (ORM) é “a tecnologia que provê a persistência de
forma automatizada e transparente dos objetos em uma aplicação, em tabelas de uma base de
dados relacional, usando metadados para fazer a troca de dados entre os objetos e a base de
dados”. (FILHO, 2006 p. 16 apud BAUER; KING, 2005, p.46). Ou seja, com este
mapeamento é possível utilizar os benefícios do paradigma orientado a objetos com a
estabilidade e a tecnologia relacional, diminuindo o tempo de desenvolvimento e a
complexidade em se persistir dados.
A especificação EJB (Enterprise JavaBeans) surgiu da necessidade de oferecer uma
infra-estrutura de desenvolvimento de aplicações com a possibilidade de se utilizar objetos
distribuídos na internet, como parte da plataforma J2EE. A especificação estabelecia uma
série de serviços (gerenciamento de transações, segurança, recursos, dentre outros), porém a
manipulação destas entidades era muito limitada. Por isso, na especificação EJB 3.0, foi
criada uma nova API de persistência, a JPA, que traz todos os benefícios da orientação a
objetos, para a camada de persistência em Java (SANTANA et al., s/a).
A API de persistência na plataforma Java define uma maneira simples de mapear
objetos Java para um banco de dados relacional. Nas especificações EJB anteriores a 3.0, os
bens de entidade (POJO’s de persistência) consumiam muitos recursos, dependiam do
servidor de aplicação e de todo o ambiente de execução J2EE. Outro ponto fraco das
especificações anteriores é que não havia uma padronização dos objetos mapeados do banco
de dados, ou seja, fornecedores individuais poderiam construir seus próprios objetos
persistentes, o que acarretava a não-portabilidade entre fornecedores diferentes (BURKE E
MONSON-HAEFEL, 2007).
49
A nova especificação JPA utiliza o mapeamento objeto-relacional, simplificando o
processo de desenvolvimento e padronizando as entidades POJO (Plain Old Java Objects) de
persistência. O tratamento de dados como objetos facilita a manipulação e deixa a
programação mais simples, dando maior qualidade e portabilidade entre aplicações. Além da
padronização do mapeamento objeto-relacional, a JPA também proporciona uma
independência de plataforma de desenvolvimento, podendo ser aplicada tanto na J2EE quanto
na plataforma J2SE (SANTANA et al., s/a). A FIG. 8 apresenta um desenho esquemático
mostrando a especificação JPA.
FIGURA 8 – Especificação JPA
Fonte: Curte, 2007 apud Adaptado de Bellia, Renato. Revista Java Magazine, ed. 44, p. 28.
Nota-se que a tecnologia JPA utiliza uma camada intermediária entre o banco e a
aplicação e necessita de um provedor que implemente a especificação JPA. No mercado
existem várias implementações, cada uma oferecendo recursos adicionais à especificação e
todos têm seus pontos fortes e fracos, dentre estas opções destacam-se o TopLink e
principalmente o Hibernate.
O Hibernate é um framework open-source, provedor da especificação JPA. Segundo
Bauer e King, 2005 “ele é o intermediário entre a interação do aplicativo com o banco de
dados relacional, deixando o desenvolvedor livre para pensar no problema do negócio”. Sua
utilização permite que a aplicação manipule apenas objetos, o que facilita a persistência e a
recuperação de dados no banco de dados. Além disso, diminui o impacto para a aplicação, no
caso de alguma mudança no banco, e aumenta, consideravelmente, a produtividade do
desenvolvimento de softwares.
50
• IReports
A geração de relatórios é um recurso fundamental em qualquer aplicação comercial,
por permitir que os dados sejam formatados de forma mais elegante para o usuário. Nesta
perspectiva, nasceu em 2001, o JasperReports, criado por Teodor Danciu, que tinha como
objetivo ajudar os desenvolvedores na produção de relatórios, tanto desktop quanto para web,
a partir do formato XML. Em 2002, Giulio Toffoni lança, de forma independente, uma
ferramenta visual que gerava um formato compatível com o JasperReports. A partir de 2005,
a JasperSoft, mantenedora do JasperReports, adotou o IReports como ferramenta oficial para
a geração de relatórios do JasperReports. A FIG. 9 apresenta uma tela desta ferramenta.
FIGURA 9 – Tela do IReports Fonte: Lozano, 2006.
O IReports é uma ferramenta de código aberto, voltada para aplicações Java, que
utiliza o formato da biblioteca do JasperReports. Sua utilização traz vantagens, tanto para os
programadores experientes, agilizando o processo de construção de relatórios mais
complexos, quanto para os iniciantes, pois permite a criação de relatórios sem a necessidade
de manipular o código fonte. Além dos recursos para a comunicação com o banco de dados,
permite agrupar informações vindas de grupos de dados de diversas tabelas; definir uma
51
padronização de formatos para impressão e possibilita exportar os relatórios gerados para
diversos formatos (GONÇALVES, 2008).
• JUnit
A execução de testes nos códigos produzidos sempre foi uma parte crítica dos
projetos, no que tange o tempo e os custos dos mesmos. O JUnit é um framework de código
aberto, criado para facilitar a criação de testes dentro da linguagem de programação Java.
Através dele é possível detectar se determinado método funcionará como esperado e descobrir
possíveis falhas.
Segundo Neto (2006) existem varias baterias de testes que são executadas no software
antes de serem disponibilizadas para os usuários finais. Estes testes vão desde os unitários até
os de integração e sistema. Os testes unitários são aqueles executados nas menores porções do
software e tem por objetivo encontrar pequenos erros como, por exemplo, códigos mal
elaborados, a fim de garantir uma qualidade no produto desenvolvido durante o processo. Já
os testes de integração e sistema objetivam verificar o comportamento do sistema em
conjunto, encontrado possíveis problemas de interação entre unidades de software.
Uma das grandes vantagens em se aplicar testes utilizando o framework JUnit é a
criação rápida de códigos de teste, possibilitando uma maior qualidade e ganho de tempo no
desenvolvimento e no próprio teste. Outra vantagem é que, uma vez escrito, os testes podem
ser executados rapidamente, sem que o processo de desenvolvimento seja interrompido. A
verificação automatizada dos resultados agilizam, ainda mais, a fase de testes no software.
• JUDE
A modelagem UML se mostra importante em projetos desenvolvidos utilizando
linguagem orientada a objetos. Neste projeto, para facilitar esta modelagem, a ferramenta
JUDE, desenvolvida pela empresa Eiwa System Management, foi utilizada no processo de
análise de requisitos. A figura abaixo apresenta um diagrama de seqüência modelado nesta
ferramenta (FIG. 10).
52
FIGURA 10 – Tela de criação de um diagrama de seqüência Fonte: http://jude.change-vision.com/jude-web/product/jude_pl.html Esta ferramenta está disponível no mercado em duas versões, a Jude Community que
possui a licença GNU GPL (General Public License) e a Jude Professional que necessita de
licença. Em sua versão GPL, são disponibilizados funcionalidades básicas para a modelagem,
suportando todos os diagramas da UML versão 2.0. Já a sua versão Professional oferece
recursos avançados, tais como impressão melhorada de diagramas e templates, input-output
de modelos para arquivos XML, funções de copiar e colar em formato de vetor. A utilização
desta ferramenta possibilita, além da modelagem, a geração automática de documentação e a
importação de arquivos de código Java (FERREIRA, REIS, 2005).
3.6 Considerações finais
Nesta seção foram apresentadas as ferramentas utilizadas durante o desenvolvimento
do ADSBD Manager. Foram abordadas as metodologias de desenvolvimento aplicadas
durante o projeto, como o modelo em cascata, espiral e XP. Também foram apresentadas as
ferramentas utilizadas durante a análise de requisitos, como o Jude Professional e o
DBDesigner. Na fase de implementação do software, foi utilizado o IDE Netbeans e a
linguagem Java como tecnologia base da aplicação. Por fim, o SGBD Firebird e o
IBOConsole foram utilizados para a persistência dos dados. O capítulo seguinte trata da
metodologia de desenvolvimento do ADSBD Manager.
53
4 METOLOGIA DE DESENVOLVIMENTO DO ADSBD
MANAGER
Esta seção apresenta como foi desenvolvido o software de gerenciamento da ADSBD.
Sendo mostradas as fases de desenvolvimento e quais tecnologias utilizadas em cada uma
dessas.
4.1 Considerações inicial
O desenvolvimento de um software é processo complexo, dividido em algumas fases.
Por isso é importante se definir uma metodologia de trabalho que atenda as necessidades de
cada projeto. Neste caso especifico foi utilizada uma metodologia de desenvolvimento
baseada nas melhores praticas da metodologia em cascata, espiral e da XP.
Este projeto pode ser divido em 3 fases maiores, sendo cada uma dessas composta por
outras fases. A primeira foi à coleta e análise dos requisitos do sistema, a segunda a
documentação do software e por fim a implementação, testes e implantação. Em cada uma
destas etapas se buscou utilizar técnicas e ferramentas adequadas para que, desta maneira,
fosse possível desenvolver um software baseado nos princípios da engenharia de software.
• Visão geral do sistema
O sistema ADSBD Manager tem por finalidade auxiliar a associação no gerenciamento
das suas atividades administrativas. Estas atividades estão relacionadas ao cadastro, busca e
relatórios sobre doadores, colaboradores, doações e atividades gerenciais.
O funcionamento do software está relacionado a 4 núcleos principais: o gerenciamento
de doadores - gerencia informações relacionadas aos doadores de sangue, permitindo
cadastro, busca, exclusão e atualização de doadores; gerenciamento de colaboradores -
gerencia informações relacionadas aos colaboradores financeiros, permitindo cadastro, busca,
exclusão e atualização de colaboradores financeiros; gerenciamento de doações de sangue -
gerencia as informações relativas às doações de sangue, realizando um controle das doações;
e as atividades internas - gerencia as atividades administrativas da associação, gerando
relatórios periódicos sobre elas.
54
A partir do gerenciamento destes pontos é possível ter um controle sobre as atividades
da ADSBD, gerando os relatórios necessários e facilitando a manipulação das informações.
Abaixo será detalhada a fase de levantamento de requisitos, apresentando as técnicas
utilizadas e o seu resultado.
4.2 Levantamento de requisitos
Com o objetivo de compreender melhor o contexto do sistema, foi realizado um
levantamento de requisitos utilizando a metodologia em cascata. Inicialmente foi realizada
uma entrevista de ativação na qual foi apresentada para a diretoria da ADSBD a proposta e
definidas as diretrizes para a realização do projeto.
Em seguida, foi realizada uma nova entrevista com o objetivo de identificar os
stackholders e os principais requisitos do sistema, sendo o resultado desta entrevista
formalizado em um documento que mostra uma visão inicial do sistema em alto nível
(documento visão). A partir deste documento, foi estruturada uma entrevista a fim de
identificar detalhadamente todos os requisitos do sistema.
Durante esta entrevista, foram levantadas informações sobre os stackholders, o
funcionamento da instituição, a documentação gerada e os formulários utilizados em seu
gerenciamento. Após este levantamento, se discutiu quais seriam os pontos chave dos
requisitos, e o modo de documentar o software de forma a atender as expectativas da
organização. Posteriormente, foi produzido um documento de especificação de requisitos
(SRS), que seria a base para as outras fases de desenvolvimento do software.
Os documentos produzidos, como o documento visão e o SRS estão disponíveis na
“Documentação do software ADSBD Manager”, bem como em formato digital e também na
web, através do site Source Forge, podendo, os mesmos, ser acessados pelo link
http://adsbdmanager.sourceforge.net/.
4.3 Análise de Requisitos e Projeto
Uma vez elaborado o documento de especificação de requisitos (SRS), é realizada uma
análise para refinamento destes, os documentos gerados servem de base para as outras fases
do desenvolvimento. Para esta análise, foi utilizada a modelagem UML e a ferramenta CASE
Jude Professional para a geração da documentação.
55
Primeiramente, foram produzidos os diagramas de casos de uso de todo o sistema. A
partir deles, foram produzidos o modelo de domínio e os diagramas de seqüencia e atividades
dos casos de uso principais. Posteriormente, foi produzido o diagrama de pacotes para
demonstrar a arquitetura da aplicação. Finalmente foi gerada a Especificação dos Casos de
Uso, estando disponível na “Documentação do software ADSBD Manager”, bem como em
formato digital e também na web, através do site Source Forge, podendo, ser acessada pelo
link http://adsbdmanager.sourceforge.net/.
• Funcionalidade do sistema
Após a análise de requisitos, foram enumeradas as funcionalidades essenciais do
sistema:
• Gerenciamento de doadores de sangue
o Cadastrar doadores de sangue;
o Atualizar cadastros de doadores;
o Realizar a impressão dos cadastros efetuados;
o Pesquisar doadores de sangue através dos campos nome, endereço, tipo
sanguíneo, sexo, data da última doação, disponibilidade para viajar, telefone.
• Gerenciamento de Colaboradores Financeiros
o Cadastrar colaboradores financeiros;
o Atualizar colaboradores financeiros;
o Realizar a impressão dos cadastros efetuados;
o Pesquisar colaboradores financeiros através dos campos nome, endereço para
recolhimento, telefone, data de aniversário, data da colaboração, situação do
colaborador.
• Gerenciamento de doações de sangue
o Cadastrar as doações efetuadas pelos doadores;
o Imprimir um relatório contendo todas as doações efetuadas por um doador;
o Controlar a periodicidade das doações de sangue de cada doador.
• Gerenciamento das atividades interna
o Gerenciar atividades relacionadas à doação de sangue
� Controle de conscientização de familiares;
� Controlar as bolsas utilizadas;
56
� Controle das bolsas captadas nas coletas realizadas em Bom Despacho;
� Controle de acompanhamento de doadores aos Hemocentros.
o Gerenciar as atividades do projeto “Futuro Doador”
o Gerenciar correspondências
� Felicitações de aniversariantes;
� Cartas de agradecimento;
� Cartas de pêsames;
� Ofícios expedidos;
� Felicitações pelo dia nacional do doador voluntário de sangue;
� Correspondências diversas.
o Gerenciar colaborações recebidas
� Controle de mão de obra voluntária;
� Controle de doações de materiais;
� Controle de doações financeiras.
o Gerenciar Divulgações
� Divulgações em rádios;
� Divulgações em jornais;
� Divulgações em TVs;
� Palestras e treinamentos;
� Divulgações diversas;
o Gerenciar serviços autônomos
o Geração de relatórios periódicos das atividades internas
o Controlar carga horário de cada atividade
4.3.1 Caso de uso: visão geral do sistema
A FIG. 11 apresenta um diagrama de caso de uso com as principais funcionalidades do
sistema, e objetiva mostrar, aos envolvidos no projeto, os requisitos que serão implementados.
57
FIGURA 11 – Diagrama de caso de uso: Caso de uso geral Fonte: Os autores.
Como se pode perceber na FIG. 11, o sistema irá abranger uma série de atividades
dentro da organização, sendo os casos de uso gerenciar doadores, gerenciar colaboradores,
controlar doações de sangue e gerar relatórios os núcleos do sistema. É importante ressaltar
que no diagrama acima, para efeitos de melhor visualização, algumas funcionalidades foram
agrupadas em casos de uso genéricos, que estão detalhadamente especificados no documento
de Especificação de Casos de Uso.
O documento de Especificação de Casos de Uso (disponível na “Documentação do
software ADSBD Manager”, em formato digital e também na web, através do site Source
Forge, podendo, ser acessada pelo link http://adsbdmanager.sourceforge.net/) traz uma
especificação detalhada dos casos de uso, onde será possível visualizar todas as
funcionalidades do sistema. Os casos de uso principais como cadastro de doadores e
colaboradores, gerenciar projeto Futuro Doador e o gerenciar doações de sangue foram
modelados também com os diagramas de seqüência e de atividade.
58
• Especificações do caso de uso geral
A FIG. 11, mostrada no tópico anterior apresenta em alto nível as principais
funcionalidades do sistema. Para uma melhor compreensão do mesmo, o QUADRO 3
apresenta uma pequena descrição de cada caso de uso
QUADRO 3 Descrição dos Casos de Uso – Digrama Casos de Uso Geral
Caso de Uso Descrição Controlar Doadores de Sangue Realiza o gerenciamento de todas as atividades
relacionadas aos doadores de sangue, como cadastro, busca e atualização dos dados.
Gerenciar Doações de Sangue Realiza o gerenciamento de todas as atividades relacionadas às doações de sangue efetuadas pelos doadores cadastrados pela na ADSBD. São registradas as datas, locais e motivos de cada doação.
Controlar Colaboradores Realiza o gerenciamento de todas as atividades relacionadas aos colaboradores financeiros, como cadastro, busca e atualização dos dados.
Gerenciar Treinamentos Realiza o gerenciamento de todos os treinamentos realizados pela ADSBD, seja com voluntários ou profissionais.
Gerenciar "Projeto Futuro Doador"
Realiza o gerenciamento de todas as atividades do "Projeto Futuro Doador".
Controlar Divulgações Realiza o gerenciamento de todas as atividades de divulgação realizadas pela ADSBD, seja através de jornais, TV, rádio ou faixas.
Gerenciar Doações de Equipamento
Realiza o gerenciamento de todas as doações de equipamentos e matérias recebidos pela ADSBD.
Gerenciar Prestação de Serviços Realiza o gerenciamento todos os serviços prestados sejam por autônomos ou voluntários, para a ADSBD.
Gerenciar Reuniões Realiza o gerenciamento de todas as reuniões (ordinárias e extraordinárias) realizadas pela ADSBD.
Gerar Relatórios Realiza a emissão de relatórios sintéticos e analíticos relativos às atividades internas, levantamentos estatísticos sobre doadores de sangue e colaboradores.
Gerenciar Correspondências Realiza o gerenciamento de todas as atividades relacionadas ao envio de correspondências.
Fonte: Os autores.
O sistema de gerenciamento da ADSBD, como pôde ser percebido, é muito amplo e
visa disponibilizar um meio informatizado que atenda todas as necessidades gerenciais da
59
associação. As descrições detalhadas de todos os casos de uso estão disponibilizadas no
documento de Especificação de Casos de Uso.
4.3.2 Especificação do caso de uso Cadastrar Doadores de Sangue
A fim de melhor compreender o domínio da aplicação, a partir do caso de uso geral,
foram selecionados os seis principais, e, a partir deles, foram modelados os diagramas de
seqüencia e atividades. A fim de não sobrecarregar este trabalho será apresentada somente a
especificação do caso de uso cadastrar doadores de sangue. Os demais casos de uso principais
estão especificados no documento de Especificação de Casos de Uso.
O caso de uso cadastrar doador de sangue é um dos principais, pois a partir dele várias
outras atividades são desenvolvidas. A FIG. 12 traz a representação do deste caso de uso e o
QUADRO 4 a descrição deste.
FIGURA 12 – Caso de Uso Cadastrar Doadores de Sangue. Fonte: Os autores.
60
QUADRO 4 Descrição do Caso de Uso Cadastrar Doador de Sangue
Fonte: Os autores. Para melhor compreender os fluxos de informações executadas pelo ator, foi elaborado
um diagrama de atividade. O objetivo deste diagrama é mostrar as ações que são
desempenhadas quando uma determinada operação é executada. A FIG. 13 mostra o fluxo de
trabalho executado pelo ator durante o cadastro de um doador de sangue.
Caso de Uso Descrição Nome do Caso de Uso Cadastrar Doador de Sangue Sumário Realiza o cadastramento de doadores de sangue na ADSBD. Ator Agente ADSBD Pré-Condições A tela correspondente ao gerenciamento dos doadores deverá estar
disponível para o usuário Pós-Condições O sistema apresentará uma mensagem informando o status da
operação Seqüência Básica 1 Clicar no botão de Cadastro de Doador de Sangue;
2 Informar os dados de cadastro do Doador 2.1 Dados Pessoais; 2.2 Endereço Residencial e Comercial; 2.3 Pesquisa e situação do doador; 3 Clicar no botão Salvar;
Seqüência Exceção Caso o usuário não informe algum dos campos de preenchimento obrigatório será exibida uma mensagem informando o ocorrido e a tela será reapresentada para o usuário
61
FIGURA 13 – Diagrama de atividade cadastrar doadores de sangue Fonte: Os autores.
Na FIG. 13 o ator ativa a tela de cadastro de doadores. Após esta ativação, o ator pode
optar por cancelar a operação ou continuar o processo. Caso ele continue o processo, ele
informa os dados do doador e, logo em seguida é verificado se os dados fornecedos estão
completos, caso contrário, é exibida uma mensagem informando o ocorrido. Caso os dados
sejam validados, eles são persistidos e o fluxo de trabalho finalizado.
A partir das descrições de casos de uso, foram elaborados os diagramas de seqüência.
O objetivo destes diagramas é mostrar as trocas de mensagens entre os objetos em tempo de
execução, mostrando, assim, os procedimentos executados pelo sistema durante o cadastro de
algum doador de sangue. A FIG. 14 enfatiza os procedimentos básicos para se cadastrar um
doador de sangue.
62
FIGURA 14 – Diagrama seqüencia básica de Cadastro doador de sangue Fonte: Os autores. Na FIG. 14, o agente da ADSBD ativa a tela de cadastro de doadores de sague. Após
ter inserido as informações do doador, é realizada uma verificação para validar estas
informações e, a partir deste ponto, é acionado o serviço responsável pela persistencia, que
finalmente é grava as informações no banco. Ao final do processo é exebido uma mensagem
para o usuário informando o sucesso da operação. A figura abaixo mostra a seqüencia
executada pelo sistema caso o usuário informe algum dado incompleto (FIG. 15).
63
FIGURA 15 – Diagrama de seqüencia de exceção Fonte: Os autores. Na FIG. 15 é enfatizada a seqüência de exceção do caso de uso cadastrar doadores de
sangue. Neste diagrama o agente da ADSBD aciona a tela de cadastro. Após informar os
dados do doador, é feita uma verificação dos dados. Esta verificação constata que há alguns
dados que não foram fornecidos pelo agente, sendo retornada uma mensagem de erro ao
agente, solicitando a verificação dos dados pendentes. Este tipo de verificação de dados é
muito proveitoso, pois não permite que dados incompletos sejam repassados para as outras
camadas da aplicação.
4.3.3 Modelo de Domínio
O modelo de domínio apresenta uma visão geral da estrutura do software. Sua
representação é feita através de um diagrama de classes definido pela UML. Esta modelagem
objetiva apresentar de forma consistente e simples as classes, que representam as entidades, e
seus relacionamentos.
Neste projeto, a definição do modelo de domínio foi dificultada pelo fato da ADSBD
possuir uma estrutura de funcionamento muito grande e complexa. A associação mantém
cadastros de doadores e colaboradores, além de realizar um controle de todas as suas
atividades internas. Neste controle são registradas todas as atividades administrativas, sendo
64
que algumas utilizam documentos provenientes de hospitais e hemocentros.
Então, a partir da especificação dos casos de usos e dos requisitos do sistema (SRS)
foram modelados, utilizando a ferramenta JUDE Professional, dois diagramas de classe
representando as classes conceituais do domínio da aplicação. Para uma melhor visualização e
compreensão, o modelo de domínio foi dividido em dois diagramas, sendo que a FIG. 16
aborda o gerenciamento de doadores e colaboradores e a FIG. 17 o gerenciamento de
atividades.
FIGURA 16 – Modelo de Domínio: Gerenciamento de Doadores e Colaboradores Fonte: Os autores.
A FIG. 16 apresenta todas as classes envolvidas no gerenciamento dos doadores e
colaboradores. Destacando ainda o controle das doações que é feito para cada doador, onde é
possível acompanhar todas as doações efetuadas pelo mesmo.
FIGURA 17 – Modelo de Domínio: Gerenciamento de Atividades Fonte: Os autores.
65
A FIG. 17 apresenta o controle das atividades internas da associação. É baseada no
diagrama de casos de uso geral e a algumas classes foram generalizadas a fim de facilitar
visualização e o entendimento.
4.4 Análise Entidade-Relacional
A construção de um diagrama entidade-relacional tem como objetivo, identificar as
entidades mais relevantes em uma organização, e destacar suas propriedades e
relacionamentos. Portanto para se construir um deste diagrama é importante compreender
bem o negócio para o qual o software será desenvolvido.
A construção do diagrama entidade-relacional deste projeto foi feita após o
levantamento e a analise dos requisitos, uma vez que isso facilita a compreensão do domínio
da aplicação. Então, utilizando a ferramenta DBDesigner foi modelado um diagrama inicial,
sendo este refinado até se chegar ao ponto demonstrado pela FIG. 18.
67
Na modelagem nota-se a existência de 2 tabelas que centralizam os fluxos principais
da associação. A tabela Pessoas e seus relacionamentos focalizam a parte de gerenciamento
de doadores e colaboradores, enquanto a tabela Atividades é o foco do gerenciamento das
atividades administrativas.
4.5 Arquitetura do Software
A arquitetura da aplicação foi modelada através do diagrama de pacotes, na qual
mostra a divisão da aplicação em 3 camadas distintas: a camada de apresentação, que cuida de
todas as classes referentes a interface de comunicação com o usuário, a camada de serviço,
que é responsável por conter toda a regra de negócio da aplicação e a camada de persistência,
responsável pela persistência dos dados no banco. A figura abaixo mostra o diagrama de
pacotes, demonstrando a arquitetura modelada para o software (FIG. 19).
FIGURA 19 – Diagrama de pacote: Arquitetura do software Fonte: Os autores. A camada de visão contém todas as classes responsáveis pela comunicação com o
usuário. Nesta camada foi utilizado a tecnologia Swing, disponibilizada pelo Java, para o
desenvolvimento da interface. Este pacote também contém algumas classes para validar os
dados da interface, garantindo a consistência dos dados que são passados para as outras
camadas.
A camada de serviço contém classes que disponibilizam para as outras camadas
recursos, tanto para persistência quanto para a visão de forma que os dados não são
persistidos sem passar por essa camada. Além de oferecer estes serviços, este pacote contém
68
classes responsáveis por realizar toda a regra de negócio da aplicação, como a geração de
relatórios, tratamento de erros, dentre outras.
A camada de persistência é responsável pela comunicação da aplicação com o banco
de dados. Nesta camada foi utilizada a especificação JPA, na qual foi realizado o mapeamento
objeto-relacional. Com isso, foi possível definir apenas uma classe genérica, responsável por
persistir, recuperar e atualizar qualquer entidade mapeada.
O pacote de entidade contém todas as classes mapeadas do banco de dados, permitindo
a sua utilização em todas as camadas, uma vez que estas classes têm a definição dos tipos de
dados na aplicação como um todo.
A utilização desta arquitetura se fez necessária, uma vez que a aplicação pode sofrer
modificações tanto por parte dos dados necessários as suas atividades quanto nos relatórios
gerados. Com a adoção deste modelo, pode-se reduzir o impacto das modificações no
software, sendo necessário apenas alterar a camada respectiva, sem alterar as demais.
A arquitetura do software ADSBD Manager, desenvolvido durante este projeto,
respeitou a divisão de camadas, a fim de desenvolver uma aplicação desacoplada, que tenha
fácil manutenabilidade.
4.6 Implementação
A implementação de um software é uma das fases mais dispendiosas do processo de
desenvolvimento. Na implementação do ADSBD Manager, muitas dificuldades foram
encontradas, tais como a utilização do uma tecnologia recente (JPA) para a persistência de
dados, a elaboração dos algoritmos para a geração de relatórios e de uma interface simples e
funcional.
O uso da JPA na persistência exigiu um estudo aprofundado e a realização de vários
testes, contudo seu uso beneficiou o projeto, aumentando a produtividade dos
desenvolvedores e a robustez da aplicação. Sua utilização possibilitou a criação de uma única
classe que encapsula toda a comunicação entre a aplicação e o banco de dados. A figura
abaixo apresenta um trecho do código desta classe (FIG. 20).
69
FIGURA 20 – Trecho de código da classe DAOGenerico Fonte: Os autores. A FIG. 20 traz um trecho da classe “DAOGenerico”, sendo feita através dela toda a
comunicação com a base de dados. Seus métodos trabalham com objetos que implementam a
interface “Persistivel”, ou seja, todas as entidades do sistema implementam esta interface, e
através desta classe é possível inserir, deletar e recuperar qualquer uma delas no banco de
dados.
Outros pontos relevantes foram a utilização do IReports, que facilitou na criação do
design dos relatórios e na integração destes com a aplicação; a programação em pares, que
propiciou uma codificação mais refinada e coesa e a modularização do software, que permitiu
a equipe desenvolvedora concentrar seus esforços em porções específicas da aplicação.
4.7 Testes realizados
A realização de testes em uma aplicação é uma das fases mais importantes e mais
dispendiosas, uma vez que se gasta muito tempo com o planejamento e a própria execução
dos mesmos. Para automatizar este processo, foi utilizado o framework JUnit, para a
realização de testes unitários na camada de serviço da aplicação.
Durante estes testes, foram detectados vários problemas estruturais e lógicos, nas quais
foram identificados e corrigidos. Após a realização dos testes, já com o módulo de cadastro de
70
doadores e colaboradores finalizados, foram realizados testes de unidade, com o objetivo de
identificar erros nas camadas do software.
Finalmente, antes de implantar o modulo de cadastro, foram realizados uma bateria de
testes, como o cadastro de vários doadores e colaboradores para testar a robustez da aplicação
em execução. Com a realização destes testes, verificamos que a estrutura implementada foi
satisfatória
4.8 Implantação
A implantação de um sistema informatizado em qualquer organização é algo
complexo, exigindo planejamento e readequações nos procedimentos organizacionais. A
implantação do ADSBD Manager foi estruturada a fim de reduzir o impacto da informatização
na entidade e não causar problemas com informações inconsistentes.
O módulo de gerenciamento de doadores de sangue e colaboradores financeiros, após
uma bateria de testes, foi implantado e está em funcionamento na entidade. Foi realizado um
treinamento no qual foi apresentado o sistema e suas principais funcionalidades, e aplicado
um questionário sobre sua usabilidade, sendo o resultado deste apresentado no gráfico abaixo
(GRAF. 4).
GRÁFICO 4 – Resultado do questionário de usabilidade Fonte: Os autores. O módulo de gerenciamento de atividades teve sua implantação reestruturada, pois,
durante a bateria de testes, foram encontradas falhas relacionadas principalmente aos
algoritmos de geração de relatórios, o que ocasionou um atraso na entrega da versão
definitiva. Tais falhas estão sendo analisadas pelos desenvolvedores e um planejamento para a
implantação futura foi elaborado.
71
4.9 Apresentação do Sistema
Conforme citado as interfaces gráficas do sistema foram desenvolvidas utilizando a
API Swing do Java. As figuras abaixo apresentam algumas telas do sistema, sendo abaixo de
cada uma delas explicada a sua funcionalidade.
A tela inicial apresenta as funcionalidades do sistema, que podem ser acessadas
através de uma barra de menus ou pelos ícones de atalho da barra de ferramentas. A FIG. 21
mostra a tela principal do ADSBD Manager.
FIGURA 21 – Tela inicial ADSBD Manager Fonte: Os autores.
A tela de cadastro de doadores é responsável pela edição, inclusão e atualização de
doadores de sangue, bem como a geração de um relatório, em formato PDF, que o usuário
poderá imprimir. A FIG. 22 mostra a tela de cadastro de doadores.
72
FIGURA 22 – Tela de cadastro de doadores Fonte: Os autores.
A tela de cadastro de colaboradores oferece as opções de inserção, atualização e
edição de um colaborador, bem como a geração de relatório, em formato PDF, dando as
opções de imprimir ou não. A FIG 23 mostra a tela de cadastro de colaboradores.
FIGURA 23 – Tela de cadastro de colaboradores Fonte: Os autores. A tela de busca avançada de doadores permite que o sistema faça uma busca
automatizada através dos campos nome, endereço, tipo sanguíneos, fator Rh, situação do
doador, disponibilidade para viajar e pela data de aniversário. A FIG 24 mostra a tela de busca
de doadores.
73
FIGURA 24 – Tela de busca avançada de doadores Fonte: Os autores. A tela de controle de doações é responsável por controlar todas as doações realizadas
per um doador, sendo informados a data, o motivo, o local e uma observação. A FIG. 25
mostra a tela de busca de doadores.
FIGURA 25 – Tela de controle de doações Fonte: Os autores.
A tela de gerenciamento projeto futuro doador é responsável pelo gerenciamento de
todas as atividades relativas a este projeto. Ela disponibiliza as opções de inserir qual o
público alvo, as atividades desenvolvidas e os recursos utilizados. A FIG 26 mostra a tela de
gerenciamento do futuro doador.
74
FIGURA 26 – Tela gerenciamento do projeto futuro doador Fonte: Os autores.
A aplicação abrange mais uma série de funcionalidades, e possui uma grande
quantidade de telas. Seria inviável a exposição de todas estas telas neste trabalho, por isso
foram apresentadas aquelas relacionadas as funcionalidades principais do sistema, a fim de
dar uma idéia geral sobre do ADSBD Manager.
4.10 Considerações Finais
Esta seção trouxe a metodologia de desenvolvimento do software. Foram apresentadas
todas as fases e detalhados os procedimentos em cada uma. Os diagramas de caso de uso e de
classe foram apresentados bem como o diagrama entidade-relacional que modelou a base de
dados do sistema. Por fim algumas telas foram mostradas a fim de propiciar uma maior
compreensão do que realmente foi desenvolvido.
O tópico seguinte traz algumas considerações sobre as dificuldades, contribuições e
possíveis melhorias para este projeto.
75
5 CONSIDERAÇÕES FINAIS DO PROJETO
Esta seção apresenta uma conclusão deste projeto, são abordadas as dificuldades
enfrentadas no seu desenvolvimento e suas contribuições. Outro ponto interessante é o que
trata de melhorias futuras para o projeto.
5.1 Dificuldades enfrentadas
Por se tratar de um projeto muito amplo, várias dificuldades foram encontradas. Tais
obstáculos podem ser categorizados sob 2 aspectos: os relacionadas a compreensão do
domínio da aplicação e os relacionados ao desenvolvimento do software.
Devido à complexidade da estrutura de funcionamento da ADSBD enfrentaram-se
dificuldades na compreensão de seu domínio. Pois a grande quantidade de informações e o
relacionamento dessas geram empecilho no entendimento para as pessoas que não estão
habituadas ao cotidiano da associação.
No que tange ao desenvolvimento do sistema, as principais dificuldades estão
relacionadas aos seguintes pontos: a documentação do software – devido à amplitude e
complexidade do negócio; definição da metodologia – exigiu uma grande pesquisa sobre as
varias metodologias existentes, a fim de se identificar as melhores praticas e, então, estruturar
uma que se adequasse ao projeto; a utilização do JPA na camada de persistência – por se tratar
de uma tecnologia recente, que auxilia no mapeamento objeto relacional, foi preciso realizar
um estudo detalhado para sua utilização neste projeto.
Também relacionada ao desenvolvimento do software, pode-se destacar a necessidade
do sistema não impactar fortemente nos procedimentos administrativos da associação. Isto se
deve ao fato dos funcionários da ADSBD não possuírem experiência com informática, e como
a migração do modelo manual para o informatizado já é um grande impacto, mudar também
tais procedimento poderiam causar a não utilização do sistema. Para tanto, foi preciso criar
um sistema onde os antigos formulários fossem apresentados digitalmente, mantendo-se
assim, a forma de gerenciamento.
É importante destacar que todas estas dificuldades enfrentadas foram agravadas ou
geradas pela inexperiência da equipe de desenvolvimento. Uma vez que esta é a primeira vez
que participaram de um grande projeto, realizando todas as fases do desenvolvimento, desde o
levantamento e análise dos requisitos até a implantação do software.
76
5.2 Contribuições do projeto
O desenvolvimento deste projeto contribui tanto para seus desenvolvedores quanto
para a ADSBD, associação para qual um sistema de gerenciamento foi construído.
As principais contribuições para os seus desenvolvedores estão relacionadas ao fato de
terem colocado em prática muitas das técnicas apreendidas durante o bacharelado. Por
exemplo, muitas metodologias foram estudadas, suas melhores práticas levantadas e uma
metodologia de desenvolvimento adequada ao projeto foi construída. Sendo assim, foi
possível desenvolver todas as fases de um projeto de software e, então, compreender melhor
como se dá este processo na prática.
Quanto às contribuições para a ADSBD destaca-se, inicialmente, uma pesquisa sobre a
doação de sangue, as associações de doadores de sangue e o gerenciamento destas, onde
foram mostradas as necessidades e dificuldades enfrentadas por estas entidades. Por fim e,
talvez a maior contribuição deste projeto, foi à construção de um sistema de gerenciamento
para a ADSBD, o ADSBD Manager. Este sistema foi desenvolvido baseado exatamente nos
seus procedimentos administrativos, a fim de facilitar toda administração da associação.
5.3 Trabalhos Futuros
Conforme citado anteriormente, este projeto foi abrangente e atingiu desde a situação
da doação de sangue e necessidades gerenciais das entidades do terceiro setor até a parte de
desenvolvimento de software, mostrando metodologias e ferramentas utilizadas. Porém o
ponto principal está no desenvolvimento do sistema de gerenciamento da ADSBD.
O sistema foi desenvolvido sob a linguagem Java e utilizou-se o Firebird como SGBD
e o Swing para a construção de interfaces gráficas. Em se tratando do software
especificamente, uma das melhorias seria a construção da camada de visão utilizando
tecnologias mais recentes que permitem a criação de interfaces mais elaboradas e interativas.
Apesar dos componentes Swing serem portáveis e flexíveis, uma vez que são
implementados em Java, não trazem muitos recursos que permitam a construção de interfaces
ricas, interativas e que facilitem a cognição do usuário. Daí a possibilidade de se reconstruir a
camada de visão utilizando uma tecnologia recente como o Flex, da Adobe ou JavaFX.
A utilização destas ferramentas traz inúmeros recursos para a construção de interfaces
ricas. A não utilização de uma destas tecnologias neste projeto se deve ao fato do tempo
77
necessário para o aprendizado ser grande, além do que o estudo sobre JPA e a compreensão
do domínio da aplicação consumiram muito tempo.
Por se falar do domínio da aplicação, este é outro ponto que pode passar por possíveis
melhorias. As mudanças aqui cabem nas situações onde a ADSBD alterar seus procedimentos
administrativos. Como citado, o Relatório Anual Circunstanciado segue um modelo do
Ministério da Justiça, e esse passa por alterações constantemente. Como as atividades internas
(atualmente são 39 atividades) são controladas a fim de ser a base deste relatório, é possível
que elas sejam adaptadas aos novos parâmetros do modelo. Podendo uma atividade ser
excluídas ou alteradas, bem como novas podem ser criadas.
Diante disso é interessante que, periodicamente, o sistema seja reavaliado, a fim de
adequá-lo aos procedimentos utilizados pela ADSBD. Em alguns destes casos será preciso
uma reestruturação da base de dados e, claro, das regras de negócio. Todas estas possíveis
melhorias visam propiciar a associação um sistema cada vez mais simples, intuitivo, confiável
e que atenda as suas necessidades de fato.
5.4 Considerações finais
O processo de doação de sangue é muito importante para a sociedade e através dele,
muitas vidas são salvas. Porém seus procedimentos são complexos e envolvem hospitais,
hemocentros, associações de doadores de sangue e, claro doadores e receptores.
Neste trabalho objetivou-se demonstrar o papel das associações de doadores de sangue
dentro do processo de doação e as suas formas de gerenciamento. Evidenciando-se as
necessidades enfrentadas por elas, devido à quantidade de documentos manipulados. A
dificuldade de encontrar softwares gerenciais que atendam as estas necessidades e como um
sistema informatizado auxiliaria no gerenciamento destas.
Outro objetivo, talvez o mais complexo, foi o desenvolvimento de um aplicativo
gerencial para a ADSBD. Utilizando de técnicas da engenharia de software, foi estruturado
todo um projeto de construção deste software, iniciando-se com o levantamento e analise de
requisitos, quando foram gerados os documentos visão e o SRS; passando pela modelagem
baseada na UML até a implementação e implantação do software.
Toda a documentação elaborada para a construção do ADSBD Manager encontra-se
disponível na “Documentação do software ADSBD Manager”. Também em uma mídia e na
web, através do site Source Forge, pelo link http://adsbdmanager.sourceforge.net/.
78
A metodologia de desenvolvimento do software foi baseada nas práticas da
metodologia em cascata, espiral e da Extreme Programming, a partir delas se criou um
metodologia que se adequasse as necessidades e limitações do projeto. Muitas ferramentas
foram utilizadas a fim de aumentar a produtividade e a confiabilidade, das quais se destacam
o Jude, na modelagem UML e o DBDesigner, na modelagem entidade-relacional.
A implementação foi feita na linguagem Java utilizando a IDE NetBeans, o que
facilitou muito este processo e minimizou algumas dificuldades. Durante esta fase vale
ressaltar a utilização da JPA na camada de persistência, o que gerou dificuldades por ser uma
tecnologia nova, mas que trouxe uma produtividade considerável ao projeto.
Sendo assim, implementado o ADSBD Manager, um sistema capaz de atender as
necessidades da associação, cadastrando doadores e colaboradores e gerando os relatórios
pertinentes. Este projeto tem pontos para melhorias, como a camada de visão, que utilizou a
API Swing, pode ser construída com uma tecnologia nova que traga mais qualidade e
interação as interfaces, como o Flex o JavaFX. Além de adequações na lógica de
funcionamento do sistema, em caso de mudanças nas rotinas de trabalho da associação.
Pode-se afirmar que este trabalho conseguiu, apesar das dificuldades enfrentadas,
apresentar o papel das associações de doadores de sangue e suas necessidades e dificuldades
no que tange seu gerenciamento. E que a partir de um estudo de caso, feito junto a ADSBD,
foi desenvolvido ADSBD Manager, um software capaz de atender as necessidades gerencias
da entidade.
79
REFERÊNCIAS
AGUIAR, Marianne Thamm de. ; SILVA, Eduardo Marcondes Filinto. Terceiro Setor: Buscando uma Conceituação. Cadernos Fundata. 2001. Disponível em: <http://www.fundata.org.br/Artigos%20-%20Cefeis/06%20-20TERCEIRO%20SETOR%20-%20BUSCANDO%20UMA%20CONCEITUA%C3%87%C3%83O.pdf> Acesso em: 11 jun. 2009. ALMEIDA, Alexandre de; DAROLT, Reginaldo. Pesquisa e desenvolvimento em UML. Universidade do Sul de Santa Catarina. Araranguá, 2001. Disponível em: <http://joaomorais.com.br/jm/uploads/Links/uml.pdf>. Acesso em: 30 set. 2009. ARAÚJO, Marco Antônio P. DBDesigner: Uma ferramenta gratuita para a modelagem de dados. SQL Magazine. 2009 disponíveis em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=6840>. Acesso em: 19 set. 2009. ASTELS, David; MILLER, Granville; NOVAK, Miroslav. Extreme Programming guia rápido. Rio de Janeiro: Campus, 2002. BANDEIRA, Junior Marcos. Estudo dos Sistemas de Gerenciamento de Bancos de Dados Firebird, Mysql e PostgreSql e seus recursos para armazenamento de imagens. Universidade Federal de Santa Maria. Santa Maria. Disponível em: <http://www.etaj.com.br/~jmoreira/apostila/pdfs/DBFree.pdf>. Acesso em: 8 set. 2009. BAUER, Christian; KING, Gavin. Hibernate em Ação. Rio de Janeiro: Editora Ciência Moderna Ltda., 2005. BECK, Kent. Programação extrema explicada: acolha as mudanças. Porto Alegre: Bookman, 2004. BIO, Sergio Rodrigues. Sistemas de informação: um enfoque gerencial. São Paulo: Atlas. 1991. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: Guia do usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. BURKE, Bill; MONSON-HAEFEL, Richard. Enterprise JavaBeans 3.0. 5. ed. São Paulo: Pearson Prentice Hall, 2007.
80
CARVALHO, Ana Elizabete Souza de; TAVARES, Helena Cristina; CASTRO, Jaelson Brelaz. Uma Estratégia para Implantação de uma Gerencia de Requisitos Visando a Melhoria Dos Processos de Software. Centro de Informática, Universidade Federal de Pernambuco. Disponível em: <http://www.creupiapostilas.hpg.ig.com.br/Pro-Req-3.pdf>. Acesso em: 03 jul. 2009. CEUNES – Programação III. Apostila Introdução a Orientação a Objetos. UFES/CEUNES. São Mateus-ES. s/a. Disponível em: <http://www.ceunes.ufes.br/downloads/2/mariateixeira-EC.Programa%C3%A7%C3%A3o%20III.Cap%C3%ADtulo%201.2009.2.pdf >. Acesso em: 04 nov. 2009. COURA, Michele dos Santos. Ambiente de Aprendizagem de Lógica de Programação. Faculdade de Engenharia de Guaratinguetá Especialização em Informática Empresarial. Guaratinguetá – SP. 2006. Disponível em: <http://www.feg.unesp.br/ceie/Monografias-Texto/CEIE0605.pdf>. Acesso em: 13 nov. 2009. DEITEL, H. M. ; DEITEL P. J. Java como programar. 6 ed. São Paulo: Pearson Prentice Hall, 2005. DURÃES, Dayane Helen Santos. Análise de Desempenho entre os Bancos de Dados POSTGRESQL e FIREBIRD na plataforma Windows 2000. Universidade Estadual de Montes Claros. Montes Claros, 2007. Disponível em: <http://www.ccet.unimontes.br/arquivos/monografias/246.pdf>. Acesso em: 08 set. 2009. ESTATUTO ADSBD. Associação de Doadores de Sangue de Bom Despacho. Estatuto. Bom Despacho, 2008. FERREIRA, Neuziany Nery; REIS, Regiane. Requisitenow!: Uma ferramenta web de apoio ao levantamento e análise de requisitos, baseado em casos de uso. Universidade da Amazônia, Belém, 2005 disponível em <http://www.cci.unama.br/margalho/portaltcc/tcc2005/PDF/004.pdf> Acesso em 19 de set 2009. FREITAS, Henrique M. R. de; KLADIS, Constantin Metaxa. Da organização a política informacional das organizações: um quadro conceitual. São Paulo; RAP, v 29, Junho/Setembro 1995. p. 73 – 86. Disponível em: <http://www.ea.ufrgs.br/professores/hfreitas/files/artigos/1995/1995_026_RAP.pdf>. Acesso em: 23 abr. 2009.
81
FREITAS, Gustavo André de; PARIS, Riliane Alpoim. FIREBIRD . Faculdade de Ciências Aplicadas Sagrado Coração. Linhares, 2007. Disponível em: <http://www.gfsolucoes.net/trabalhos/Firebird.pdf>. Acesso em: 08 set. 2009. FUNDAÇÃO HEMOMINAS. CENTRO DE HEMATOLOGIA E HEMOTERAPIA DE MINAS GERAIS. 2009. Disponível em: <http://www.hemominas.mg.gov.br/hemominas/menu/aInstituicao/apresentacao.html>. Acesso em: 01 set. 2009. GHIGNATTI, Sachia F. ; STEFFEN, Tereza E. ; TURCHETTO, Fabiano. Sistema para gestão de entidades sem fins lucrativos. Universidade Luterana do Brasil (ULBRA), Torres. 2007. Disponível em: <http://guaiba.ulbra.tche.br/pesquisas/2007/artigos/sistemas/301.pdf>. Acesso em: 03 set. 2009. GOMES, Emiliana Bezerra.; MAIA, Evanira Rodrigues. Doador voluntário ou de reposição? Fatores determinantes para um doador de reposição tornar-se doador voluntário de sangue. Saúde Coletiva: Coletânea. Número 1. Vol.1. Outubro/2007. ISSN 1982-1441. Disponível em <http://coletanea2007.no.comunidades.net/index.php?pagina=1254963751> Acesso em: 01 set. 2009. GONÇALVES, Edson. Dominando Relatórios JasperReports com iReport. São Paulo: Ciência Moderna, 2008. HIRAGI, Gilberto. Ambiente de Desenvolvimento para Java ênfase em NetBeans. Disponível em: <http://ashwall.cenargen.embrapa.br/hiragi/tap/resumos/AmbienteNetBeans.pdf>. Acesso em: 08 set. 2009. IBGE CIDADES. Instituto Brasileiro de Geografia e Estatistica. CidadesSat. 2007. Disponível em <http://www.ibge.gov.br/cidadesat/topwindow.htm?>. Acesso em: 02 out. 2009. KIDO, Eduardo Yassuji; HIRAMA, Kechi. Arcabouço para a gestão de impactos da adoção de ferramentas case baseado na IEEE1175. XXVIII Encontro Nacional de Engenharia de Produção. Rio de Janeiro. 2008. Disponível em: <http://www.abepro.org.br/biblioteca/enegep2008_TN_STO_076_536_12102.pdf>. Acesso em: 30 out. 2009. LOZANO, Fernando. Relatórios Corporativos com Java e Software Livre. 2006. Disponível em: <http://uploads.javafree.com.br/files/10190295398982E12-relatorios-java-2.pdf>. Acesso em: 12 nov. 2009.
82
LUDWIG, Silvia Terra.; RODRIGUES, Alziro César de Morais. Doação de sangue: uma visão de marketing. Caderno Saúde Pública. 2005, vol.21, n.3, p. 932-939. ISSN 0102-311X. doi: 10.1590/S0102-311X2005000300028. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0102-311X2005000300028&lang=pt>. Acesso em: 31 ago. 2009. MASSOL, Vincent; HUSTED, Ted. JUnit em ação. Rio de Janeiro: Ciência Moderna, 2005. MEDEIROS, João Marcos. Marketing Social e a Doação de Sangue. III Seminário do Centro de Ciências Sociais Aplicadas Cascavel. Unioeste, Cascavel. Paraná. 2004. Disponível em: <http://www.unioeste.br/campi/cascavel/ccsa/IIISeminario/artigos/Artigo%2015.pdf>. Acesso em: 31 ago. 2009. MINISTÉRIO DA SAÚDE (BR). Coordenação de Sangue e Hemoderivados. Meta Mobilizadora Nacional: Sangue - 100% com garantia de qualidade em todo o seu processo até 2003. Brasília: Programa Nacional de Doação Voluntária de Sangue. 1998. MOURA, Aldilene Sobreira de, et al. Doador de sangue habitual e fidelizado: fatores motivacionais de adesão ao programa.Universidade de Fortaleza. 2006, RBPS, n. 19, p. 61-67. Fortaleza, Ceará. Disponível em: <http://www.unifor.br/notitia/file/855.pdf>. Acesso em: 01 set. 2009. NASCIMENTO, Marcos Ribeiro do; FALCÃO, Jonathas Barros; CUNHA, Adilson Marques da. Uso de ferramentas de software livre no processo de desenvolvimento de sistema de banco de dados: um estudo de caso. Instituto Tecnológico da Aeronáutica, 2006. Disponível em: <http://161.24.9.6:81/cunha/artigos_2006/02a_2006_FerrSWLivreImplBD(Cun-Mar-Jon).pdf>. Acesso em: 05 out. 2009. NETO, Aristides Vicente de Paula. Criando testes com JUnit. Universidade Federal de Pernambuco, Recife. 2006. Disponível em: <http://javafree.uol.com.br/dependencias/tutoriais/testes_junit.pdf>. Acesso em: 05 set. 2009. PENDER, Tom. UML, a bíblia . Rio de Janeiro: Elservier, 2004. PORTAL TECMEDIA. 2008. Disponível em: <http://www.tecmedia.com.br/noticias/portal-corporativo-para-entidade-social>. Acesso em: 06 set. 09. PRADO, André Alves. et al. Engenharia de Software em aplicações de tecnologia da informação visando maior qualidade nos Sistemas de Informações Gerenciais. Disponível em: <http://www.fatea.br/janus/pdfs/artigo02.pdf>. Acesso em: 04 set. 2009.
83
RELATÓRIO ANUAL CIRCUNSTANCIADO ANO BASE 2008. Associação dos Doadores de Sangue de Bom Despacho. Relatório. Bom Despacho, 2009. REQUERIMENTO CNAS. Associação dos Doadores de Sangue de Bom Despacho. Requerimento. Bom Despacho, 2007. RIBEIRO, Alisson; SILVA, Gabriel da. Extensão das Funcionalidades de um Ambiente Integrado de desenvolvimento para linguagem PHP-GTK: Modelagem e Implementação. Centro Federal de Educação Tecnológica. Bambuí-MG, 2008. Disponível em: <http://www.cefetbambui.edu.br/str/artigos_aprovados/informatica/70-CO-5.pdf> Acesso em: 08 set. 2009. RUIZ, Evandro Eduardo Seron. Introdução ao Java. 2008. Disponível em: <http://dfm.ffclrp.usp.br/~evandro/ibm1030/intro_java/java_basics.html>. Acesso em: 13 nov. 2009. SANTANA, Fabrício. et al. Persistência com EJB 3.0 – Java Persistence API (JPA). Disponível em: <http://disciplinas.dcc.ufba.br/pub/MATA60/WebHome/persejb.pdf>. Acesso em: 04 set. 2009. SANTOS, Alexandro Klein dos. Os IDE’s (Ambientes de Desenvolvimento Integrado) como ferramentas de trabalho em informática. Universidade Federal de Santa Maria (UFSM). Santa Maria, 2007. Disponível em: <http://www-usr.inf.ufsm.br/~alexks/elc1020/artigo-elc1020-alexks.pdf>. Acesso em: 08 set. 2009. SHIGUNOV NETO, Alexandre; TEIXEIRA, Alexandre. Sociedade do conhecimento e ciência administrativa: reflexões iniciais sobre a gestão do conhecimento e suas implicações organizacionais. Belo Horizonte; Perspectiva da Ciência da Informação, v.11, n.2, Maio/Agosto 2006. p. 220 – 232. Disponível em: <http://www.eci.ufmg.br/pcionline/index.php/pci/article/viewFile/324/128> Acesso em: 19 abr. 2009. SIAB. Sistema de Informação de Atenção Básica. SubSistema do DataSUS. 2008. Disponibilizado pela Secretaria Municipal de Saúde de Bom Despacho. SIMOR, Fernando W.; DORNELES, Carina F. Um estudo de caso para análise comparativa entre programação Estruturada e Orientada a Objetos. Instituto de Ciências Exatas e Geociências - Universidade de Passo Fundo. Passo Fundo-RS. 2009. Disponível em <http://www.upf.br/computacao/images/stories/TCs/arquivos_20091/Fernando_Simor.pdf>. Acesso em: 04 nov. 2009.
84
SOARES, Euvaldo Antonio Ruiz; CATÃO, Gustavo Campos; SANTOS, Aldemar Araújo. Impacto Organizacional Da Implantação Dos Sistemas Integrados De Gestão Nas Entidades Do Terceiro Setor. 2004. Disponível em: <http://www.intempres.pco.cu/Intempres2000-2004/Intempres2004/Sitio/Ponencias/16.pdf>. Acesso em: 11 jun. 2009. SOMMERVILLE,Ian. Engenharia de software. 8. ed. São Paulo: Pearson Addison-Wesley, 2007. TAVARES, Claudia Fernanda. Onde irão agora as metodologias de desenvolvimento?. Universidade Federal do Rio Grande do Norte. Natal-RN. Disponível em: <http://www.consiste.dimap.ufrn.br/~claudia/Mestrado/Disciplinas/Engenharia_Software/Artigo%5B3%5D_MetodologiasDeDesenvolvimento.pdf>. Acesso em: 04 set. 2009. TELES, Vinícios Manhães. Extreme Programming: Aprenda como encantar seus usuários desenvolvendo softwares com agilidade e alta qualidade. São Paulo: Novatec, 2006. VASCONCELOS, Alexandre Marcos Lins de. et al. Introdução a engenharia de software e a qualidade de software. Universidade Federal de Lavras, Lavras-MG. 2006. Disponível em: <http://www.facape.br/jocelio/es/apostilas/Mod.01.MPS_Engenharia&QualidadeSoftware_V.28.09.06.pdf>. Acesso em: 05 set. 2009. VERTCHENKO, Stela Brener. Doação de Sangue: Aspectos sócio-econômicos, demográficos e culturais na região metropolitana de Belo Horizonte. Universidade Federal de Minas Gerais Programa de Pós-Graduação em Saúde Pública. Belo Horizonte-MG. 2005. Disponível em: <http://www.medicina.ufmg.br/saudepublica/dissert/stela_vertchenko05.pdf>. Acesso em: 01 set. 2009. VITORINO, Aurélio J. ; COSTA, Rogério H. da; KENCHIAN, Mary R. B. Política de Segurança em Tecnologia da Informação na Saúde: Modelo Corporativo Aplicado no HCFMUSP, XI Congresso Brasileiro de Informática na Saúde, 2008. Disponível em <http://www.sbis.org.br/cbis11/arquivos/818.pdf>. Acesso em: 30 ago. 2009.