CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIOSEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS ELIANE PEIXOTO DOS SANTOS JOSUÉ NICOLAU PROTÓTIPO DE UM SISTEMA VOLTADO À ONGs QUE ATUAM NO RESGATE DE ANIMAIS MALTRATADOS LINS/SP 1º SEMESTRE/2014 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS ELIANE PEIXOTO DOS SANTOS JOSUÉ NICOLAU PROTÓTIPO DE UM SISTEMA VOLTADO À ONGs QUE ATUAM NO RESGATE DE ANIMAIS MALTRATADOS Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para a obtenção do título de Tecnólogo em Banco de Dados. Orientador: Prof. Dr. Paulo Augusto Nardi LINS/SP 1º SEMESTRE/2014 ELIANE PEIXOTO DOS SANTOS JOSUÉ NICOLAU PROTÓTIPO DE UM SISTEMA VOLTADO À ONGs QUE ATUAM NO RESGATE DE ANIMAIS MALTRATADOS Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para obtenção do título de Tecnólogo em Banco de Dados. Data de aprovação:____/____/____ ___________________________________ Orientador (Prof. Dr. Paulo Augusto Nardi) ___________________________________ Examinador 1 ___________________________________ Examinador 2 AGRADECIMENTOS Agradecemos ao nosso orientador Professor Doutor Paulo Augusto Nardi pelo apoio e atenção. À ONG Refúgio Pet - nas pessoas de Denise Chaim e professora Luciane Noronha, por terem nos auxiliado e incentivado neste trabalho. Aos professores e professoras que direta ou indiretamente contribuíram para sua realização. A Deus, a minha querida mãe e a todos aqueles que lutam contra o abandono e maus tratos aos animais domésticos. Também dedico a todos que batalham contra o extermínio de animais planeta afora. Eliane Peixoto À família, aos amigos e colegas pelo incentivo e apoio constantes. Também a todos os professores e a todos os funcionários da Fatec Lins. Josué Nicolau RESUMO As facilidades adquiridas com a adoção de um sistema informatizadoconstituem atualmente a realidade de grandes, médias e pequenas empresas e organizações, independente da área de atuação das mesmas. Os investimentos em tecnologias direcionadas ao gerenciamento e à administração de rotinas de trabalho são cada vez mais constantes na sociedade contemporânea. Porém, na contramão desta perspectiva, há setores da sociedade, como Organizações Não Governamentais (ONG), com poucos recursos, dependentes quase que na totalidade do trabalho voluntário e de doações, que estão privadas de aproveitar as facilidades disponibilizadas pela computação. Situação esta constatada na pesquisa sobre a atuação de duas ONGs nas cidades de Lins e Promissão, que trabalham no resgate de animais maltratados. O conhecimento da realidade destas Organizações motivou o desenvolvimento do protótipo de uma aplicaçãoweb neste trabalho de conclusão de curso. Deste modo, o objetivo final é o de disponibilizá-lo posteriormente às ONGs pesquisadas e a outras que manifestarem interesse pelo trabalho, no intuito de contribuir para o aprimoramento das atividades desenvolvidas diariamente por Entidades deste setor. Para a concretização deste projeto foram utilizadas as seguintes tecnologias: Java Server Faces (JSF), PrimeFaces, Hibernate, Java Enterprise Edition(JEE), o banco de dados Mysql e IntegratedDevelopmentEnvironment(IDE), Netbeans. Palavras-chave: Organizações Não Governamentais, protótipo de aplicação web, animais maltratados. ABSTRACT The facilities acquired with the adoption of a computerized system currently constitute the reality of large, medium and small businesses and organizations, regardless of the area of operation of the same. Investments in technologies aimed at the management and administration of work routines are increasingly set in contemporary society. However, against this perspective, there are sectors of society such as Non-Governmental Organizations (NGOs), with few resources, dependent almost entirely of volunteer work and donations, which are deprived of availing the facilities provided by the computation. This situation is evidenced in the research into the work of two NGOs in the cities of Lins and Promissão, working to rescue abused animals. The knowledge of the reality of these organizations motivated the development of the prototype of a web application in this work of completion. Thus, the ultimate goal is to make it available to subsequently surveyed NGOs and others who have expressed interest in the work in order to contribute to the improvement of daily activities for these sector entities. The following technologies were used to implement this project: Java Server Faces (JSF), PrimeFaces, Hibernate, Java Enterprise Edition (JEE), the MySQL and Integrated Development Environment (IDE), Net Beans. Keywords: Non-Governmental Organizations, prototype web application, mistreated animals. LISTA DE ILUSTRAÇÕES Figura 1.1 – Animal Resgatado.................................................................................20 Figura 2.1 – Diagrama de Casos de Uso..................................................................28 Figura 2.2 – Diagrama de Atividade Efetuar Login.............................................. ...55 Figura 2.3 – Diagrama de Atividade Cadastrar ONG................................................56 Figura 2.4 – Diagrama de Atividade Cadastrar Usuário............................................56 Figura 2.5 – Diagrama de Atividade Manter Pessoa.................................................57 Figura 2.6 – Diagrama de Atividade Manter Animal..................................................57 Figura 2.7 – Diagrama de Atividade Manter Atendimento.........................................58 Figura 2.8 – Diagrama de Atividade Manter Adoção.................................................58 Figura 2.9 – Diagrama de Atividade Manter Lar Temporário.....................................59 Figura 2.10 – Diagrama de Atividade Manter Evento................................................59 Figura 2.11 – Diagrama de Atividade Manter Doação de Produtos..........................60 Figura 2.12 – Diagrama de Atividade Manter Receita...............................................60 Figura 2.13 – Diagrama de Atividade Manter Despesa.............................................61 Figura 2.14 – Diagrama de Atividade Manter Visita..................................................61 Figura 2.15 – Diagrama de Atividade Manter Produto..............................................62 Figura 2.16 – Diagrama de Atividade Manter Contribuição......................................62 Figura 2.17 – Diagrama MVC Efetuar Login.............................................................63 Figura 2.18 – Diagrama MVC Cadastrar ONG..........................................................64 Figura 2.19 – Diagrama MVC Cadastrar Usuário......................................................64 Figura 2.20 – Diagrama MVC Manter Pessoa...........................................................65 Figura 2.21 – Diagrama MVC Manter Animal............................................................65 Figura 2.22 – Diagrama MVC Manter Atendimento..................................................66 Figura 2.23 – Diagrama MVC Manter Adoção..........................................................66 Figura 2.24 – Diagrama MVC Manter Lar Temporário..............................................67 Figura 2.25 – Diagrama MVC Manter Evento...........................................................67 Figura 2.26 – Diagrama MVC Manter Doação de Produtos.....................................68 Figura 2.27 – Diagrama MVC Manter Receita..........................................................68 Figura 2.28 – Diagrama MVC Manter Despesa........................................................69 Figura 2.29 – Diagrama MVC Manter Visita.............................................................69 Figura 2.30 – Diagrama MVC Manter Produto..........................................................70 Figura 2.31 – Diagrama MVC Manter Contribuição..................................................70 Figura 2.32 – Diagrama Sequência Efetuar Login.....................................................71 Figura 2.33 – Diagrama Sequência Cadastrar ONG ................................................71 Figura 2.34 – Diagrama Sequência Cadastrar Usuário.............................................72 Figura 2.35 – Diagrama Sequência Manter Pessoa..................................................72 Figura 2.36 – Diagrama Sequência Manter Animal...................................................73 Figura 2.37 – Diagrama Sequência Manter Atendimento..........................................73 Figura 2.38 – Diagrama Sequência Manter Adoção..................................................74 Figura 2.39 – Diagrama Sequência Manter Lar Temporário......................................74 Figura 2.40 – Diagrama Sequência Manter Evento...................................................75 Figura 2.41 – Diagrama Sequência Manter Doação de Produtos.............................75 Figura 2.42 – Diagrama Sequência Manter Receitas................................................76 Figura 2.43 – Diagrama Sequência Manter Despesas..............................................76 Figura 2.44 – Diagrama Sequência Manter Visita......................................................77 Figura 2.45 – Diagrama Sequência Manter Produto..................................................77 Figura 2.46 – Diagrama Sequência Manter contribuição...........................................78 Figura 2.47 – Diagrama de Classes...........................................................................79 Figura 2.48 – Modelo de Entidade e Relacionamento...............................................80 Figura 3.1 – Carregador da Classe lê os Bytecodes.................................................86 Figura 3.2 – Framework JSF.....................................................................................89 Figura 3.3 – Codificação e Decodificação JSF..........................................................90 Figura 4.1 – Interface de linha de comando..............................................................96 Figura 4.2 – Interface gráfica do programa MySQL Workbench...............................97 Figura 4.3 – Página Web Inicial.................................................................................98 Figura 4.4 – Ilustração Página Quem Somos............................................................98 Figura 4.5 – Página Interna Menu Eventos................................................................99 Figura 4.6 – Página Interna no submenu Doações em Dinheiro...............................99 Figura 4.7 – Página Interna Voluntários...................................................................100 Figura 4.8 – Página Acessada Pelo Menu Contato.................................................100 Figura 4.9 – Página Interna submenu Desaparecidos.............................................101 Figura 4.10 - Página Interna submenu Tipos...........................................................101 Figura 4.11 – MVC, representado pelos pacotes no Netbeans...............................102 Figura 4.12 – Especificação JPA.............................................................................103 Figura 4.13 – Implementação Componentes...........................................................104 Figura 4.14 – Código Classe Abstrata, modelo classes abstratas..........................105 Figura 4.15 – Uso da Anotação JSF.......................................................................106 Figura 4.16 – Página Inicial do Protótipo site OngWeb...........................................107 Figura 4.17 – Mensagem de Cadastro de receita realizado....................................108 Figura 4.18 – Mensagem Cadastro Pessoas...........................................................108 Figura 4.19 – Relação de Pessoas Cadastradas....................................................109 Figura 4.20 - Relação de Animais Cadastrados................................................... .109 LISTA DE QUADRO Quadro 2.1 – Requisitos Funcionais..........................................................................26 Quadro 2.2 – Lista de Casos de Uso.........................................................................29 LISTA DE ABREVIATURAS E SIGLAS ONG – Organização Não Governamental APROAN – Associação de Amor e Proteção aos Animais AJAX – Asynchronous JavaScript and Extensible Markup Language APIs - Application Programming Interfaces HTML – Hypertext Markup Language HTTP – HyperText Transfer Protocol IDEs – Integrated Development Environments JDBC – Java Database Connectivity JDK – Java Development Kit JEE – Java Enterprise Edition JME – Java Micro Edition JPA – Java Persistence API JSE – Java StandartEdition JSF – Java Server Faces JVM – Java Virtual Machine MER – Modelo de Entidade e Relacionamento MVC – ModelViewController OAB – Ordem dos Advogados do Brasil POJO – Plain Old Java Object SO – Sistema Operacional SQL – Structured Query Language UI – User Interface URL – Uniform Resource Locator XHMTL – Extensible Hypertext Markup Language XML – Extensible Markup Language SUMÁRIO INTRODUÇÃO .......................................................................................................... 16 1 LEVANTAMENTO DE REQUISITOS (ANÁLISE DO NEGÓCIO) .......................... 18 1.1 SITUAÇÃO ATUAL ............................................................................................. 18 1.1.1 Problemas Encontrados ................................................................................... 18 1.2 AS ORGANIZAÇÕES .......................................................................................... 19 1.3 DINÂMICA DE ATUAÇÃO DAS ORGANIZAÇÕES PESQUISADAS .................. 21 2 PROJETO DE SISTEMA (ANÁLISE DE REQUISITOS) ........................................ 24 2.1 RESUMO DOS ENVOLVIDOS ............................................................................ 24 2.2 PERSPECTIVAS DO PRODUTO ........................................................................ 24 2.3 DEFINIÇÕES DE USO OU REQUISITOS .......................................................... 25 2.4 DIAGRAMAS E DESCRIÇÕES ........................................................................... 26 2.4.1 Diagramas e Quadro de Casos de Uso ............................................................ 27 2.4.2 Descrições dos Casos de Uso ......................................................................... 29 2.4.3 Diagramas de Atividade ................................................................................... 55 2.4.4 Diagramas MVC ............................................................................................... 63 2.4.5 Diagramas de Sequência ................................................................................. 71 2.4.6 Diagrama de Classes ....................................................................................... 79 2.4.7 Projeto de Banco de Dados.............................................................................. 80 3 TECNOLOGIAS ..................................................................................................... 81 3.1 JAVA: HISTÓRIA ................................................................................................ 81 3.1.1 Plataforma ........................................................................................................ 82 3.1.2 Panorama da Linguagem ................................................................................. 83 3.1.3 Divisões da Plataforma Java ............................................................................ 84 3.1.4 Etapas do Desenvolvimento e Execução de uma Aplicação Java ................... 86 3.2 JAVA SERVER FACES (JSF) ............................................................................. 87 3.2.1 MVC e JSF ....................................................................................................... 88 3.2.2 Como Funciona o JSF ...................................................................................... 89 3.3 HIBERNATE E JPA ............................................................................................. 90 3.4 SISTEMAS GERENCIADORES DE BANCO DE DADOS................................... 92 3.5 MYSQL ................................................................................................................ 93 3.6 SERVIDOR GLASSFISH..................................................................................... 94 3.7 PRIMEFACES ..................................................................................................... 95 3.8 JQUERY .............................................................................................................. 95 4. RESULTADOS ...................................................................................................... 96 4.1 BANCO DE DADOS ............................................................................................ 96 4.2 PROTÓTIPO DO SISTEMA ................................................................................ 97 4.2.1 Páginas Web .................................................................................................... 97 4.2.2 Protótipo do Sistema Web .............................................................................. 102 4.3 CONSIDERAÇÕES SOBRE O CAPÍTULO ....................................................... 110 CONCLUSÃO.......................................................................................................... 111 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................ 113 APÊNDICE...............................................................................................................116 16 INTRODUÇÃO A revolução protagonizada pela tecnologia da informação e da comunicação, pauta e direciona a sociedade moderna. Muda cenários políticos, econômicos e sociais, numa velocidade cujas consequências ainda estão por serem medidas. Os efeitos desse turbilhão de mudanças resultam dia a dia em radicais transformações na forma e na intensidade das relações pessoais e profissionais. Em âmbito organizacional, práticas administrativas foram substituídas e assim a lida diária foi suavizada. (DIAS, 2008) E justamente por meio desta perspectiva, marca da sociedade digital, é que se insere esse trabalho de conclusão de curso: o desenvolvimento de um software voltado às Organizações Não Governamentais (ONG), atuantes no resgate e proteção de animais abandonados, sobretudo domésticos. Parte-se da premissa e importância de alguns setores da sociedade adotarem ferramentas tecnológicas ideais, apropriadas as suas necessidades e atuação. A organização e o gerenciamento de informações são medidas imprescindíveis em qualquer área de atuação e, no caso de uma ONG, podem trazer também maior transparênciana gestão de recursos, o que é primordial para o bom funcionamento e execução de projetos. Ao adotar o aplicativo, os envolvidos na gestão de uma determinada organização poderão disponibilizar e divulgar também informações operacionais e administrativas, uma vez que o mesmo possibilitará a emissão de relatórios demonstrativos sobre a aplicação de recursos. Ao alcançar cada vez mais formas de aprimorar a execução de suas atividades,o retorno poderá beneficiar um número maior de animais assistidos por entidades deste setor. Embora não seja direcionado sob o ponto de vista sociológico, este trabalho está essencialmente alicerçado na questão de se pensar a sociedade pós-moderna não só a partir de vantagens econômicas, mas também em âmbito social e ético. (QUÈU, 1998) Para este projeto, toma-se como base o funcionamento de uma ONG situada na cidade de Lins, o Refúgio Pet, e outra em funcionamento no município de Promissão, a APROAN (Associação de Amor e Proteção aos Animais), cidades localizadas na região oeste do Estado de São Paulo. Ambas fazem o controle de 17 suas atividades manualmente, fato, portanto, que justifica o desenvolvimento e a disponibilização de um software a estas e outras Organizações que manifestarem o interesse pela sua utilização. A estrutura do trabalho está estabelecida em capítulos, responsáveis pela explanação da metodologia utilizada que por sua vez baseia-se em levantamento bibliográfico. No primeiro capítulo tem-se uma rápida contextualização do tema, a partir de pesquisas exploratórias sobre o funcionamento de ONGs nas cidades de Lins e Promissão, cuja realidade serve como base para o desenvolvimento do projeto, seus objetivos e serviços. No segundo capítulo, pode-se conferir a contextualização dos requisitos, somado às informações e diagramas que servem de base para o desenvolvimento do projeto. No terceiro capítulo há uma descrição de cada tecnologia e o papel desempenhado por cada uma no desenvolvimento do trabalho. Aborda-se fundamentalmente a respeito das plataformas tecnológicas Java, Sistema Gerenciador de Banco de Dados (SGDB), além da descrição sobre as funcionalidades de ferramentas de desenvolvimento WEB (World Wide Web), assim como sobre o padrão Unified Modeling Language (UML). No quarto e último capítulo, na etapa de conclusão do protótipo proposto, exemplifica-se seu funcionamento, para isso lança-se mão de ilustrações, imagens acompanhadas de textos explicativos. Por fim, a conclusão. 18 1. LEVANTAMENTO DE REQUISITOS (ANÁLISE DO NEGÓCIO) Com o objetivode desenvolver um software (protótipo) para Organizações Não Governamentais (ONGs) que atuam na proteção de animais abandonados e, ou, maltratados, tem-se neste capítulo a definição do escopo do projeto através de uma breve abordagem sobre a rotina de atuação de duas ONGs nas cidades de Lins e Promissão, São Paulo. É tratada também nesta seçãosobre a expectativa de aproveitamento de uma ONG, no caso da adoção de um software desenvolvido para oferecer suporte às tarefas administrativas, de gestão e divulgação de dados e informações. Acredita-se que um sistema informatizado pode contribuir de forma positiva na atuação de todos aqueles que de alguma forma estão envolvidos com o trabalhodas Organizações. A intenção é propiciar aos usuários agilidade nos processos internos, através da otimização das diversas atividades desempenhadas por colaboradores, voluntários e gestores. 1.1 SITUAÇÃO ATUAL Para que se consiga alcançar uma delimitação pertinente à ideia inicial do projeto, faz-se necessário um bom entendimento da real situação dos atores e do ambiente em que atuam (MEDEIROS, 2004). Portanto, após o levantamento de informações captadas junto aos entrevistadosdas Entidades pesquisadas, identificaram-se questões pontuais e fundamentais à elaboração do sistema. Constatou-se que em ambas as cidades, o controle de todos os processos administrativos e financeiros, entre outros, são executados manualmente, através de anotações em cadernos e fichas cadastrais. 1.1.1 Problemas Encontrados Pode-se identificar, por exemplo, falha e ineficiência no controle de estoques dos diversos produtos recebidos de doações. Facilitaria sobremaneira se pudessem ser especificados detalhes importantes como: o tipo de produto, a data de validade e a qual animal fora destinado. Estas informações e outros dados importantes não passariam despercebidos. Da mesma forma, seria possível estabelecer o controle 19 dasituação financeira das Organizações. Subdividir e planejar melhor os gastos, assim como rendas obtidas de doações, mensalistas e promoções. A ineficiência do processo manual dificulta também uma maior agilidade na cobrança de mensalistas que se encontram em atraso. Sem contar a incapacidade de manter informações sobre animais resgatados como: os tipos de doenças mais comuns, localidades e regiões de maior incidência de abandono e maus tratos. Em suma, a perda de dados e a dificuldade em armazená-los são comuns às gestões dessas Organizações como também a impossibilidade de gerar relatórios periódicos, o que certamente emperra a execução de novos projetos e o estabelecimento de uma maior transparência nas atividades dessas Organizações. Apesar do importante papel das redes sociais para elas, pois comumente são usadas como ferramentas de divulgação, o chamado feedback com a sociedade poderia ser melhor estabelecido se dotadas de um sistema apropriado. 1.2 AS ORGANIZAÇÕES A ONG Refúgio Pet de Lins completou no último dia 18 de março dois anos de atuação, já a Associação de Amor e Proteção dos Animais (APROAN) de Promissão caminha para quase uma década de existência. Mas, apesar dos anos de diferença do surgimento de ambas, elas se assemelham quanto à estrutura material e física. Há pouco menos de um ano é que o Refúgio Pet conseguiu conquistar uma sede própria. Essas ONGs são semelhantes também no tocante à motivação para o surgimento das mesmas. Foram iniciadas por pessoas de diversos segmentos das comunidades locais, preocupadas e interessadas no contínuo exercício de defender e proteger animais de qualquer raça, espécie, domésticos, domesticados, silvestres, nativos ou exóticos. Vale lembrar que é concernente a fundação de qualquer Organização Não Governamental a característica de não ter fins lucrativos, independente da área em que esteja relacionada, como dispõe a Lei 9.790/99, no Capítulo I, Art. 1º: § 1º Para os efeitos desta Lei, considera-se sem fins lucrativos a pessoa jurídica de direito privado que não distribui, entre os seus sócios ou associados, conselheiros, diretores, 20 empregados ou doadores, eventuais excedentes operacionais, brutos ou líquidos, dividendos, bonificações, participações ou parcelas do seu patrimônio, auferidos mediante o exercício de suas atividades, e que os aplica integralmente na consecução do respectivo objeto social. (PRESIDENCIA DA REPÚBLICA, 1999, p.1). Figura 1.1 – Animal Resgatado Fonte: Arquivo ONG Refúgio Pet, 2013. Em geral, são Entidades formadas por indivíduos que procuram direcionar seus esforços para conscientizar a sociedade sobre a importância de acabar com a cultura da crueldade vigente em muitos lugares e ambientes. Fazem parte do trabalho dessas Organizações: o incentivo à guarda responsável e “afetiva” dos animais domésticos, reabilitar animais abandonados, perdidos ou vítimas de maus tratos, (vide figura 1.1 - “Tufão”, abandonado e preso por um arame, foi encontrado com ferimentos no pescoço e anêmico. À direita, após resgate e adoção, vive em uma chácara no município de Sabino, SP) a denúncia e o combate à crueldade junto às autoridades policiais, ambientais e Ministério Público, além da promoção de mutirões, eventos e campanhas de castração e adoção. Outra tarefa importante é a de auxiliar e instruir pessoas que tenham interesse no trabalho voluntário em prol dos animais. 21 Embora não haja estatísticas, percebe-se o aumento de relatos de maus tratos cometidos contra animais silvestres, domésticos ou domesticados. Cães atados em correntes curtas ou em espaços pequenos, proprietários que batem ou não alimentam os animais da forma correta, pássaros presos em gaiolas minúsculas, expostos como produtos, sem a mínima condição de higiêne, equinos, bovinos sendo açoitados em aparente estado de subnutrição, são apenas alguns exemplos que justificam a defesa de especialistas por penas mais rígidas para maus-tratos. O artigo 32 da lei federal 9.605 de 1998 prevê de três meses a um ano e detenção com multa. Segundo a advogada Érica Sarraipo (2014), membro das comissões do Meio Ambiente e de Proteção e Defesa Animal da Ordem dos Advogados do Brasil (OAB) de São Paulo, “o problema é que penas de até um ano podem ser substituídas por prestação de serviço ou pagamento em cestas básicas. Abaixo de quatro anos, a pessoa pode cumprir em regime aberto. Ouve-se uma bronca do juiz e sai livre, com a ficha limpa”. 1.3 DINÂMICA DE ATUAÇÃO DAS ORGANIZAÇÕES PESQUISADAS De acordo com os voluntários da direção das ONGs pesquisadas, quando algum membro é contatado - o que geralmente é feito pela população em geral sobre a necessidade de resgatar um animal em situação de maus tratos ou de abandono, é feita uma diligência até o local pelo grupo reunido no momento. A partir daí, esse animal é levado até uma das clínicas veterinárias parceiras, realizada uma triagem para definir estado nutricional, sexo, idade e estado de saúde. Se houver necessidade, o mesmo é encaminhado para tratamento, por meio de medicamentos, exames, radiografias, ultrassons, às vezes com internação e intervenção cirúrgica, fato corriqueiro quando o caso for de atropelamento. Cada animal socorrido tem seu histórico registrado em fichas catalográficas e datadas, constando desde o local onde fora encontrado, acometido por qual doença, o tipo de tratamento realizado, ou mesmo se submetido à eutanásia. Quando constatado, através de exame específico, sorologia para leishmaniose, em casos de tumores ou de atropelamento com o comprometimento de vários membros, realiza-se a eutanásia. 22 Em algumas situações, animais de proprietários carentes, por sua vez adotados sem a intermediação das ONGs, também são assistidos pelas clínicas parceiras, mediante autorização prévia. O Refúgio Pet de Lins desenvolve também o projeto denominado Captura, Esterilização e Devolução (CED), que consiste na captura de animais de rua, geralmente felinos adultos, sua castração e devolução ao local onde estão habituados a viver. Porém, este projeto depende totalmente das doações do valor da cirurgia. São dois os destinos possíveis para os animais resgatados: a adoção propriamente dita ou os lares provisórios, geralmente residências de voluntários, que não são necessariamente integrantes da direção das Organizações. Como parte do processo de adoção, é preenchido o chamado Termo de Adoção, onde constam dados pessoais do então candidato, o comprometimento explícito de que o animal será cuidado da forma correta, com segurança e dedicação. O não cumprimento desse Termo levará o cancelamento da adoção, retirada do animal e até mesmo o desdobramento para um processo judicial. Outro ponto importante deste documento é a permissão de livre acesso aos adotados pelos chamados Grupos de Visitas, compostos por sócios voluntários. Periodicamente esses grupos vão até aos locais onde vivem os animais adotados para fazer uma espécie de checagem completa das condições em que se encontram. Em cada visita realizada, é preenchido um cartão onde é anotado na forma de relatório tudo o que foi visto e percebido com relação à vida do animal. Caso o grupo não encontre o morador ou responsável, o cartão é preenchido com o ocorrido e deixado no local. Se na terceira vez, não conseguirem acesso ao animal, é feita uma advertência extrajudicial, comunicando a possibilidade de até mesmo ser registrado um Boletim de Ocorrência. No tocante ao controle financeiro essas Organizações valem-se de cadernos e fichas para relacionar créditos e débitos do caixa. A arrecadação provém de mensalistas - cada sócio é responsável por receber um montante - e de colaboradores, cujas doações são de valores variados e irregulares, além de dividendos provenientes de promoções como festas, rifas e venda de alimentos, entre outras atividades. As despesas de cada animal são relacionadas 23 detalhadamente também em fichas na própria clínica veterinária, responsável pelo atendimento. Já nos lares provisórios, os cuidadores são os responsáveis por esse controle. Contabiliza-se ainda, gastos com alimentação e medicamentos, entre outros, específicos de cada animal. Tanto a ONG Refúgio Pet de Lins quanto a Entidade de Promissão, recebe doações esporádicas de rações, cobertores, medicamentos, entre outros artigos que possam ser úteis no cuidado com os animais resgatados. No intuito de facilitar estas doações a ONG de Lins mantém caixas espalhadas em diversos pontos comerciais da cidade. Na maioria das vezes os animais resgatados são cachorros e gatos, porém pode ocorrer o socorro de outros tipos, tais como pássaros, cavalos, tartarugas e cobras. Com exceção de equinos e alguns tipos de aves, possíveis de serem acolhidos e cuidados pelas ONGs, a polícia ambiental é contatada e responsabilizada pelo abrigo do animal ou seu encaminhamento ao habitat natural. Em suma, tentou-se acima trazerentendimento do processo de negócio através da compreensão da gestão de duas ONGs com características semelhantes. O objetivo é o de persistirna tentativa de alcançar umSistema que seja o mais próximo possível da realidade de grande parte de organizações da mesma área de atuação. No segundo capítulo consta a documentação referente à Análise de Requisitos. 24 2. PROJETO DE SISTEMA (ANÁLISE DE REQUISITOS) Segue neste capítulo a descrição dos principais pontos do processo de desenvolvimento do software voltado à proposta de facilitar o gerenciamento de Organizações Não Governamentais que trabalham no resgate de animais abandonados e, ou, maltratados. Embora haja exceções, geralmente sistemas de informática desenvolvidos a partir de uma boa documentação tem maior possibilidade de atenderem satisfatoriamente aos interesses e objetivos dos requisitantes e usuários. (MEDEIROS, 2004) De acordo Turine e Masiero (1996, p.6), “O objetivo da fase de análise de requisitos é avaliar e revisar o escopo do software (documento de requisitos do software).(...)”. As decisões de análise servem para realimentar e melhorar o documento de requisitos do sistema, pois este será a base para todas as fases da engenharia de software subsequentes. 2.1 RESUMO DOS ENVOLVIDOS Os participantes das Entidades podem ser divididos em diretores, sócios, colaboradores, adotantes e voluntários em geral. Todos devem interagir com o sistema através de uma inteface gráfica de fácil compreensão, intuitiva, com possibilidade de acessarem informações armazenadas no Banco de Dados, de acordo com a permissão de cada usuário. Estas permissões são classificadas em doisníveis, definidos como: administrador (diretores) e usuários (colaboradores, sócios e voluntários). O administrador terá todas as permissões de gerenciamento das funcionalidades do sistema, além disso, deverá ser o único a realizar cadastros de novos usuários. Estes últimos terão privilégios de gerenciar cadastros, relatórios, fazer atualizações necessárias, também excluir e alterar informações referentes às consultas. 2.2 PERSPECTIVAS DO PRODUTO O desenvolvimento do software em questão tem o objetivo de suprir as 25 necessidades específicas de Organizações responsáveis pelo resgate de animais abandonados ou em situação de maus-tratos, dadas às peculiaridades das atividades (como discorrido no primeiro capítulo, página 24) e rotinas que elas desenvolvem. Os poucos sistemas informatizados disponíveis no mercado normalmente possuem um custo de aquisição e manutenção incompatíveis com a realidade econômico-financeira das Organizações. Por isso, apesar do desenvolvimento deste protótipo basear-se na rotina de atividades de duas Entidades, nas cidades de Lins e Promissão, o intuito dos seus desenvolvedores é o de disponibilizá-lo a outras ONGs, após a fase de implementação. Ficará em aberto a proposta a outros desenvolvedores interessados em prosseguir com trabalho de adequação, melhoramento ou ampliação do sistema. Sua disponibilização poderá ocorrer via internet. 2.3 DEFINIÇÕES DE USO OU REQUISITOS Inicialmente o sistema deve permitir cadastrar os animais resgatados, subdividindo-os entre aqueles que permanecem nos lares provisórios, os disponíveis para adoção, os adotados e ainda os que foram a óbito, além de breve relatório sobre aqueles encaminhados à Polícia Ambiental. Esse cadastro deve conter o histórico dos animais. Informações sobre o tratamento de cada animal, sem deixar de especificar sobre qual problema ou doença o mesmo fora acometido. O usuário poderá fazer o registro desde o momento do resgate até depois da adoção, inclusive de visitas periódicas. Importante permitir o cadastro de adotantes e a qual animal está vinculado no processo. A renda para o caixa das Organizações é proveniente de doações esporádicas, contribuições mensais e ainda de diversos eventos, realizados pelos voluntários. Desta forma, para um melhor controle da situação financeira é necessário o registro de débitos e créditos, com a definição da origem da receita, se é proveniente de doações ou de arrecadações por meio de eventos. A emissão de relatórios periódicos poderá auxiliar as Entidades a manterem a transparência e o equilíbrio de toda sua movimentação financeira, o que é de suma 26 importância, pois traz clareza aos colaboradores, aos sócios, como também a toda a comunidade em que estiverem inseridas. Todas as ações comentadas acima têm alta prioridade e valem-se dos recursos disponibilizados na análise, arquitetura e SGBD, acessíveis aos voluntários e membros das diretorias das Organizações. Elas configuram também os requisitos apresentados abaixo: Quadro 2.1 – Requisitos Funcionais Necessidades Prioridades Gerenciamento de cadastros em geral Alta Gerenciamento de relatórios em geral (consultas) Alta Gerenciamento de registros financeiros Alta Usuário – voluntário – insere informações diversas sobre Ata atuação da ONG, de interesse da comunidade em geral Gerenciamento de registros de eventos Alta Gerenciamento de animais para adoção Alta Gerenciamento de visitas: voluntário poderá Alta preencherrelatórios de cada visita Gerenciamento de atendimentos Alta Gerenciamento de tratamentos Alta Gerenciamento de doações em produtos Alta Fonte: Elaborado pelos autores, 2014. Relatório 2.4 DIAGRAMAS E DESCRIÇÕES Ainda sobre a modelagem do Sistema a ser desenvolvido e para uma melhor compreensão de suas funcionalidades, segue nesta seção mais uma parte da documentação deste trabalho: os diagramas. Na perspectiva de Guedes (2009, p. 21) “por mais simples que seja, todo e qualquer sistema deve ser modelado antes de se iniciar sua implementação, (...)”. Pois “frequentemente costumam ter a propriedade de (...)aumentar em tamanho, complexidade e abrangência”. Assim como no levantamento e análise de requisitos, os diagramas também foram estruturados a partir do padrão Unified Modeling Language (UML), comumente utilizado para minorar a dificuldade de comunicação entre todos os 27 stakeholders (envolvidos e interessados no projeto). Considerada como um padrão pela Engenharia de Software em todo o mundo, a UML é definida por especialistas como uma linguagem visual usada para modelar software estruturado no paradigma da orientação a objetos. (GUEDES, 2009) Guedes (2009) explica que os diagramas da UML dividem-se em entre os estruturais e comportamentais. São considerados estruturais os diagramas de classes, de estrutura composta, de objetos, de componentes, de implantação e de pacotes. Já os comportamentais são constituídos pelos de casos de uso, atividade, máquina de estados, sequência, comunicação, visão geral de interação e tempo. Neste projeto estão presentes os diagramas de caso de uso, classes, Model View Controller (MVC). 2.4.1 Diagramas e Quadro de Casos de Uso Segundo Craig (2009, p.120) “modelagem de casos de uso é principalmente um ato deescrever, não dedesenhar diagramas”. São narrativas em forma de textos amplamente usadas para descobrir e registrar requisitos. Elas descrevem um determinado ator utilizando um sistema para atingir seus objetivos. Mas, embora afirme que modelagem de casos de uso é uma ação de redigir texto e não de desenhar diagramas, o autor pondera que se pode opcionalmente incluir um diagrama UML para mostrar os nomes de casos de uso, atores e seus relacionamentos. Sob esta perspectiva é apresentado na sequência um diagrama que ilustra de forma resumida os principais casos de uso do Sistema: 28 Figura 2.1 - Diagrama de Casos de Uso Fonte: Elaborado pelos autores, 2014. Elaborado com base no diagrama anterior, segue o quadro com a lista dos casos de uso, seguido das respectivas especificações. 29 Quadro 2.2 – Lista de Casos de Uso Nº Caso de Uso Descrição Resposta A1 Efetuar Login Usuário solicita Login Mensagem Login A2 Cadastrar Ong Administrador cadastra ONG Mensagem ONG A3 Cadastrar usuário Usuário cadastra usuário Mensagem Usuário C1 Manter Pessoa Usuário cadastra Pessoa Mensagem Pessoa C2 Manter Animal Usuário cadastra Animal Mensagem Animal C3 Manter Atendimento Usuário cadastra Atendimento Mensagem Atendimento C4 Manter Adoção Usuário cadastra Adoção Mensagem Adoção C5 Manter Lar Temporário Manter Evento Usuário cadastra Lar Temporário Usuário cadastra Evento Mensagem Lar Temporário Mensagem Evento Usuário cadastra Doação Mensagem Doação C8 Manter Doação de Produto Manter Receita Usuário cadastra Receita Mensagem Receita C9 Manter Despesa Usuário cadastra Despesa Mensagem Despesa C10 Manter Visita Usuário cadastra Visita MensagemVisita C13 Manter Produto Usuário cadastra Produto Mensagem Produto C6 C7 C14 Manter Contribuição Usuário cadastra Contribuição Mensagem Contribuição C15 Gerar Relatório Usuário solicita relatório por tipo Relatório por tipo Fonte: Elaborado pelos autores, 2014. Para melhor compreensão da listagem apresentada acima, encontram-se a seguir as Descrições dos Casos de Uso: 2.4.2 Descrições dos Casos de Uso Caso de Uso A1 - Efetuar Login Este caso de uso é responsável porefetuar o login do usuário no Sistema. A1 - Fluxo Principal 30 1. Usuário informa dados de login. 2. Usuário submete dados. 3. Sistema valida dados. 4. Sistema redireciona usuário para a Aplicação. A1 – Fluxo de Exceção A1A1 - (Dados incorretos) 1. No passo 3 do Fluxo Principal, caso os dados informados não estejam corretos, o Sistema exibe mensagem de erro. 2. Retorna ao passo 1 do Fluxo Principal. Caso de Uso A2 - Cadastrar Ong Este caso de uso é responsável por cadastrar a ONG e somente poderá ser realizado pelo usuário Administrador. A2 - Fluxo Principal (Inserir) 1. Administrador solicita “Cadastrar ONG”. 2. Sistema disponibiliza tela “Cadastrar ONG”. 3. Administrador informa dados da ONG. 4. Administrador seleciona “Salvar”. 5. Sistema insere ONG e exibe a mensagem “ONG cadastrada com sucesso!”. A2 - Fluxos Alternativos A2A1 - (Alterar) 1. No passo 2 do Fluxo Principal, caso exista ONG já cadastrada, o Sistema recupera e exibe dados da ONG. 2. Administrador seleciona “Alterar”. 3. Administrador altera os dados desejados 31 4. Sistema altera os dados da ONG e emite a mensagem “Alteração realizada com sucesso!” Caso de Uso A3- Cadastrar Usuário Este caso de uso é responsável por cadastrar um Usuário e é realizado pelo Administrador. A3 - Fluxo Principal (Inserir) 1. Administrador solicita “Cadastrar Usuário”. 2. Administrador informa dados do Usuário. 3. Administrador informa demais dados solicitados. 4. Administrador seleciona “Salvar”. 5. O sistema insere novo Usuário e exibe a mensagem “Usuário cadastrado com sucesso!”. A3 - Fluxos Alternativos A3A1 - (Alterar) 1. No passo 3 do Fluxo Principal, caso o Usuário já esteja cadastrado, o Sistema recupera e exibe seus dados. 2. Usuário seleciona “Alterar”. 3. Usuário altera os dados desejados, mediante confirmação da alteração. 4. Sistema altera os dados do Usuário e emite a mensagem “Alteração realizada com sucesso!”. A3A2 - Excluir Usuário 1. No passo 3 do Fluxo Principal, caso o Usuário já esteja cadastrado, o Sistema recupera e exibe seus dados. 2. Administrador seleciona “Excluir”. 3. Sistema exclui o Usuário e emite a mensagem “Usuário excluído!”. 32 Caso de Uso C1 - Manter Pessoa Por meio deste caso de uso, o Usuário realiza inclusão, alteração, exclusão e consulta dos dados sobre Pessoas envolvidas com a ONG. C1 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Pessoa. 2. Usuário informa CPF. 3. Caso o CPF não esteja cadastrado o Sistema exibe formulário em branco para que os detalhes da Pessoa sejam informados. 3b. Caso o CPF informado já esteja cadastrado Usuário volta ao passo anterior e informa novo CPF ou encerra caso de uso (passo 7). 4. Usuário fornece os detalhes da pessoa. 5. Usuário seleciona a opção “Salvar”. 6.Sistema exibe mensagem “Pessoa incluída com sucesso!”. 7. Encerra-se o Caso de Uso. C1 - Fluxos Alternativos C1A1- Consulta com filtro(s) 1. No passo 1 ou no passo 3b do Fluxo Básico C1, Usuárioseleciona a opção consultar Pessoas. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxoC1A1S1), excluir (subfluxoC1A1S2). 4. Encerra-se o Caso de Uso. C1A1 – Subfluxos C1A1S1 - Alterar Pessoa 1. No passo 3 do fluxo alternativo C1A1 Usuário seleciona Alterar. 33 2. Sistema exibe formulário com os detalhes doregistro selecionado. 3. Usuário altera um ou mais dos detalhes doRegistro. 4. Usuário requisita atualização. 5. Sistema altera os dados da Pessoa. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C1A1S2 - Excluir Pessoa 1. No passo 3 do fluxo alternativo C1A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão da Pessoa selecionada. 3. Usuário confirma a exclusão. 4. Sistema exclui a pessoa selecionada. 5. Sistema exibe a mensagem “Pessoa excluída com sucesso”. 6. Usuário encerra Caso de Uso. C1 - Fluxos de Exceção C1E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C1, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C1. Caso de Uso C2 - Manter Animal Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Animais atendidos pela Ong. C2 - Fluxo Principal 34 1. O caso de uso inicia quando o Usuário requisita o cadastro de Animal. 2. Sistema exibe formulário em branco para que os detalhes doAnimal sejam informados. 3. Usuário fornece os detalhes doAnimal. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Animal incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C2 - Fluxos Alternativos C2A1- Consulta com filtro(s) 1. No passo 1 do Fluxo Básico C2, Usuário seleciona a opção consultar Animais. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxo C2A1S1), excluir (subfluxo C2A1S2). 4. Encerra-se o Caso de Uso. C2A1 – Subfluxos C2A1S1 - Alterar Animal 1. No passo 3 do fluxo alternativo C2A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados doAnimal. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C2A1S2 - Excluir Animal 1. No passo 3 do fluxo alternativo C2A1 Usuário seleciona Excluir. 35 2. Sistema solicita ao Usuário a confirmação para exclusão doAnimal selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui oregistro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C2 - Fluxos de Exceção C2E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C2, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C2. Caso de Uso C3 - Manter Atendimento Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre os atendimentos realizados pela ONG. C3 - Fluxo Principal 1.O caso de uso inicia quando o Usuário requisita o cadastro de Atendimento. 2. Usuário seleciona Animal. 3. Usuário seleciona Atendente. 4. Usuário informa detalhes do Atendimento. 5. Usuário seleciona a opção “Salvar”. 6. Sistema exibe mensagem “Dados incluídos com sucesso!”. 7. Encerra-se o Caso de Uso. C3 - Fluxos Alternativos 36 C3A1- Cadastrar animal 1. No passo 2 Fluxo Básico C3, caso o Animal não esteja cadastrado ou seja necessário alterar cadastro, Usuário seleciona a opção cadastrar Animal. 2. Sistema abre tela de cadastro de Animal (Caso de uso C1) 3. Após o cadastro retorna ao passo 3 doFluxo Principal. C3 – Subfluxos C3S1- Consulta com filtro(s) 1. No passo 2 do Fluxo Básico 3, Usuário seleciona a opção consultar Atendimentos. 2. O Sistema realiza a consulta. 3. Encerra-se o Caso de Uso. C3S1 – Subfluxos alternativos C3S1SA1- Alterar Atendimento 1. No passo 2 do subfluxoC3S1 Usuário seleciona Registro. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C3S1SA2 - Excluir Atendimento 1. No passo 2 do subfluxo C3S1 Usuário seleciona Registro. 2. 4. Usuário requisita exclusão. 3. Sistema solicita ao Usuário a confirmação para exclusão da Pessoa selecionada. 4. Usuário confirma a exclusão. 37 5. Sistema exclui o registro selecionado. 6. Sistema exibe a mensagem “Registro excluído com sucesso”. 7. Usuário encerra Caso de Uso. C3 - Fluxos de Exceção C3E1 – Dados Obrigatórios Não Informados No passo 5 do fluxo principal C3, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C3. Casos de Uso C4 - Manter Adoção Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Adoções realizadas pela Ong. Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Adoção. 2. Usuário seleciona Adotante. 3. Usuário seleciona Animal. 4. Usuário informa detalhes da Adoção. 5. Usuário seleciona a opção “Salvar”. 6. Sistema exibe mensagem “Dados incluídos com sucesso!”. 7. Encerra-se o Caso de Uso. C4 - Subfluxo Alternativo C4S1- Cadastrar Adotante 1. No passo 2 Fluxo Básico C4, caso o adotante não esteja cadastrado ou seja necessário alterar cadastro, Usuário seleciona a opção cadastrar adotante. 2. Sistema abre tela de cadastro de Pessoa (Caso de uso C1) 38 3. Após o cadastro retorna ao passo 3 do Fluxo Principal. C4 – Fluxo Alternativo C4A1- Consulta com filtro(s) 1. No passo 2 do Fluxo Básico C4, Usuário seleciona a opção consultar Adoções. 2. O Sistema realiza a consulta. 3. Encerra-se o Caso de Uso. C4A1 – Subfluxos alternativos C4A1S1 - Alterar Adoção 1. No passo 2 do fluxo alternativo C4A1 Usuário seleciona Registro. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C4A1S2 - Excluir Adoção 1. No passo 2 do subfluxoC4A1Usuário seleciona Registro. 2. 4. Usuário requisita exclusão. 3. Sistema solicita ao Usuário a confirmação para exclusão da Adoção selecionada. 4. Usuário confirma a exclusão. 5. Sistema exclui o registro selecionado. 6. Sistema exibe a mensagem “Registro excluído com sucesso”. 7. Usuário encerra Caso de Uso. 39 C4 - Fluxos de Exceção C4E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C4, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C4. Caso de Uso C5 - Manter Lar Temporário Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Lares temporários. C5 - Fluxo Principal 1. O caso inicia quando o Usuário requisita o cadastro de Lar Temporário. 2. Sistema exibe formulário em branco para que os detalhes do Lar temporário sejam informados. 3. Usuário fornece os detalhes do Lar temporário. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Lar temporário incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C5 - Fluxos Alternativos C5A1- Consulta com filtro(s) 1. No passo 1 do Fluxo Básico C5, Usuário seleciona a opção consultar Lar temporário. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 40 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxo C5A1S1), excluir (subfluxo C5A1S2). 4. Encerra-se o Caso de Uso. C5A1 – Subfluxos C5A1S1 - Alterar 1. No passo 3 do fluxo alternativo C5A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados do registro. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C5A1S2 – Excluir 1. No passo 3 do fluxo alternativo C5A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão do registro selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui o registro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C2 - Fluxos de Exceção C5E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C5, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C5. 41 Caso de Uso C6 - Manter Evento Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Eventos. C6 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Evento. 2. Sistema exibe formulário em branco para que os detalhes do Evento sejam informados. 3. Usuário fornece os detalhes do Evento. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Evento incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C6 - Fluxos Alternativos C6A1- Consulta com filtro(s) 1. No passo 1 do Fluxo Básico C6, Usuário seleciona a opção consultar. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxo C6A1S1) ou excluir (subfluxo C6A1S2). 4. Encerra-se o Caso de Uso. C6A1 – Subfluxos C6A1S1 - Alterar 1. No passo 3 do fluxo alternativo C6A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 42 5. Sistema altera os dados do registro. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C6A1S2 - Excluir 1. No passo 3 do fluxo alternativo C6A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão do registro selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui o registro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C6 - Fluxos de Exceção C6E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C6, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C6. Caso de Uso C7 -Manter Doação de Produto Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Doações de Produtos. C7 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Doação de 43 Produto. 2. Usuário seleciona Doador. 3. Usuário seleciona Produto. 4. Usuário informa detalhes da Doação de Produto. 5. Usuário seleciona a opção “Salvar”. 6. Sistema exibe mensagem “Dados incluídos com sucesso!”. 7. Encerra-se o Caso de Uso. C7 - Subfluxo Alternativo C7S1- Cadastrar Doador 1. No passo 2 Fluxo Básico C7, caso o doador não esteja cadastrado ou seja necessário alterar cadastro, Usuário seleciona a opção cadastrar doador. 2. Sistema abre tela de cadastro de Pessoa (Caso de uso C1) 3. Após o cadastro retorna ao passo 3 do Fluxo Principal. C7 – Fluxo Alternativo C7A1- Consulta com filtro(s) 1. No passo 2 do Fluxo Básico C7, Usuário seleciona a opção consultar Doações. 2. O Sistema realiza a consulta. 3. Encerra-se o Caso de Uso. C7A1 – Subfluxos alternativos C7A1S1 - Alterar Doação 1. No passo 2 do fluxo alternativo C7A1 Usuário seleciona Registro. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 44 4. Usuário requisita atualização. 5. Sistema altera os dados. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C7A1S2 - Excluir Doação 1. No passo 2 do subfluxo C7A1 Usuário seleciona Registro. 2. 4. Usuário requisita exclusão. 3. Sistema solicita ao Usuário a confirmação para exclusão da Adoção selecionada. 4. Usuário confirma a exclusão. 5. Sistema exclui o registro selecionado. 6. Sistema exibe a mensagem “Registro excluído com sucesso”. 7. Usuário encerra Caso de Uso. C7 - Fluxos de Exceção C7E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C7, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C7. Caso de Uso C8 - Manter Receitas Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Receitas. C8 - Fluxo Principal 45 1. O caso de uso inicia quando o Usuário requisita o cadastro de Receita. 2. Sistema exibe formulário em branco para que os detalhes da Receita sejam informados. 3. Usuário fornece os detalhes daReceita. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Cadastro incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C8 - Fluxos Alternativos C8A1- Consulta com filtro(s) 1. No passo 1 do Fluxo Básico C8, Usuário seleciona a opção consultar. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxo C8A1S1) ou excluir (subfluxo C8A1S2). 4. Encerra-se o Caso de Uso. C8A1 – Subfluxos C8A1S1 - Alterar 1. No passo 3 do fluxo alternativo C8A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados do registro. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C8A1S2 – Excluir 46 1. No passo 3 do fluxo alternativo C8A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão do registro selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui o registro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C8 - Fluxos de Exceção C8E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C8, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C8. Caso de Uso C9 - Manter Despesas Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Despesas. C9 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Despesa. 2. Sistema exibe formulário deDespesa. 3. Usuário fornece os detalhes da Despesa. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Cadastro incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C9- Fluxos Alternativos 47 C9A1- Consulta com filtro(s) 1. No passo 1 do Fluxo Básico C9, Usuário seleciona a opção consultar. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxo C9A1S1) ou excluir (subfluxo C9A1S2). 4. Encerra-se o Caso de Uso. C9A1 – Subfluxos C9A1S1 - Alterar 1. No passo 3 do fluxo alternativo C9A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados do registro. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C9A1S2 - Excluir 1. No passo 3 do fluxo alternativo C9A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão do registro selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui o registro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C9 - Fluxos de Exceção 48 C9E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C9 se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C9. Caso de Uso C10 - Manter Visita Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Visitas. C10 - Fluxo Principal 1.O caso de uso inicia quando o Usuário requisita o cadastro de Visitas. 2. Usuário seleciona Animal. 3. Usuário seleciona Atendente. 4. Usuário informa detalhes da Visita. 5. Usuário seleciona a opção “Salvar”. 6. Sistema exibe mensagem “Dados incluídos com sucesso!”. 7. Encerra-se o Caso de Uso. C10 - Fluxos Alternativos C10A1- Cadastrar animal 1. No passo 2 Fluxo Básico C10, caso o Animal não esteja cadastrado ou seja necessário alterar cadastro, Usuário seleciona a opção cadastrar Animal. 2. Sistema abre tela de cadastro de Animal (Caso de uso C2) 3. Após o cadastro retorna ao passo 3 do Fluxo Principal. C10 –Subfluxos 49 C10S1- Consulta com filtro(s) 1. No passo 2 do Fluxo Básico C10 Usuário seleciona a opção consultar Visitas. 2. Sistema realiza a consulta. 3. Encerra-se o Caso de Uso. C10S1 – Subfluxos alternativos C10S1SA1 –Alterar 1. No passo 2 do subfluxo C10S1 Usuário seleciona Registro. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C10S1SA2 - Excluir Atendimento 1. No passo 2 do subfluxo C10S1 Usuário seleciona Registro. 2. 4. Usuário requisita exclusão. 3. Sistema solicita ao Usuário a confirmação para exclusão da Pessoa selecionada. 4. Usuário confirma a exclusão. 5. Sistema exclui o registro selecionado. 6. Sistema exibe a mensagem “Registro excluído com sucesso”. 7. Usuário encerra Caso de Uso. C10 - Fluxos de Exceção C10E1 – Dados Obrigatórios Não Informados 50 1. No passo 5 do fluxo principal C10, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C1. Caso de Uso C11 - Manter Produto Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Produtos. C11 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Produto. 2. Sistema exibe formulário em branco para que os detalhes do Produto sejam informados. 3. Usuário fornece os detalhes do Produto. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Produto incluído com sucesso!”. 6. Encerra-se o Caso de Uso. C11 - Fluxos Alternativos C11A1- Consulta com filtro(s) No passo 1 do Fluxo Básico C11, Usuário seleciona a opção consultar. 2. O Sistema realiza a consulta, considerando o conteúdo dos filtros informados. 3. Usuário visualiza cadastro e Sistema oferece as opções de alterar (subfluxoC11A1S1) ou excluir (subfluxoC11A1S2). 4. Encerra-se o Caso de Uso. C11A1 – Subfluxos 51 C11A1S1 - Alterar Produto 1. No passo 3 do fluxo alternativo C11A1 Usuário seleciona Alterar. 2. Sistema exibe formulário com os detalhes do registro selecionado. 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados do registro. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C11A1S2 – Excluir Produto 1. No passo 3 do fluxo alternativo C11A1 Usuário seleciona Excluir. 2. Sistema solicita ao Usuário a confirmação para exclusão do registro selecionado. 3. Usuário confirma a exclusão. 4. Sistema exclui o registro selecionado. 5. Sistema exibe a mensagem “Dados excluídos com sucesso”. 6. Usuário encerra Caso de Uso. C11 - Fluxos de Exceção C11E1 – Dados Obrigatórios Não Informados 1. No passo 5 do fluxo principal C11, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 4 do fluxo principal C11. Caso de Uso C12 - Manter Contribuição Através deste caso de uso, o Usuário realiza o cadastro (inclusão, alteração, exclusão, consulta) dos dados sobre Contribuições. 52 C12 - Fluxo Principal 1. O caso de uso inicia quando o Usuário requisita o cadastro de Contribuições. 2. Usuário seleciona Doador. 3. Usuário informa detalhes da Contribuição. 4. Usuário seleciona a opção “Salvar”. 5. Sistema exibe mensagem “Dados incluídos com sucesso!”. 6. Encerra-se o Caso de Uso. C12 - Subfluxo Alternativo C12S1- Cadastrar Doador 1. No passo 2 Fluxo Básico C12, caso o doador não esteja cadastrado ou seja necessário alterar cadastro, Usuário seleciona a opção cadastrar doador. 2. Sistema abre tela de cadastro de Pessoa (Caso de uso C1) 3. Após o cadastro retorna ao passo 3 do Fluxo Principal. C12 – Fluxo Alternativo C12A1- Consulta com filtro(s) 1. No passo 2 do Fluxo Básico C12, Usuário seleciona a opção consultar Contribuições. 2. O Sistema realiza a consulta. 3. Encerra-se o Caso de Uso. C12A1 – Subfluxos alternativos C12A1S1 - Alterar Contribuição 1. No passo 2 do fluxo alternativo C12A1 Usuário seleciona Registro. 2. Sistema exibe formulário com os detalhes do registro selecionado. 53 3. Usuário altera um ou mais dos detalhes do Registro. 4. Usuário requisita atualização. 5. Sistema altera os dados. 6. Sistema exibe a mensagem “Dados alterados com sucesso”. 7. Usuário encerra Caso de Uso. C12A1S2 - Excluir Contribuição 1. No passo 2 do subfluxoC12A1 Usuário seleciona Registro. 2. 4. Usuário requisita exclusão. 3. Sistema solicita ao Usuário a confirmação para exclusão da Contribuição selecionada. 4. Usuário confirma a exclusão. 5. Sistema exclui o registro selecionado. 6. Sistema exibe a mensagem “Registro excluído com sucesso”. 7. Usuário encerra Caso de Uso. C12 - Fluxos de Exceção C12E1 – Dados Obrigatórios Não Informados 1. No passo 4 do fluxo principal C12, se os dados obrigatórios não forem informados, o sistema exibe a mensagem: “Dados obrigatórios devem ser preenchidos.” 2. O caso de uso retorna ao passo 3 do fluxo principal C12. Caso de uso C13 - Emitir Relatórios por Tipo Este caso de uso permitirá emitir relatório de acordo com o filtro informado C13 - Fluxo Principal 1. Este caso de uso inicia quando o usuário requisita geração de Relatórios. 54 2. Usuário seleciona tipo. 3. Usuário seleciona filtros. 4. Sistema exibe relatório. 5. Encerra-se o Caso de Uso; C13 - Fluxos Alternativos C13A1 Imprimir Relatório 1. No passo 4 do Fluxo principal C13 Usuário solicita imprimir um relatório. 2. Sistema envia comando para impressora. 3.Retorna ao passo2 , passo 3 ou passo 5 do Fluxo principal C13. 55 2.4.3 Diagramas de Atividade Para modelar processos de negócios, fluxos de trabalho, fluxos de dados e até mesmo algoritmos complexos, utiliza-se o Diagrama de Atividade, cuja estrutura permite exibir o fluxo de atividades sequenciais e paralelas de um determinado processo.A preocupação principal ao utilizar-se este Diagrama é a de descrever os passos a serem percorridos para a conclusão de uma atividade específica, podendo esta ser representada por um método com certo grau de complexidade, um algoritmo, ou mesmo por um processo completo. (GUEDES, 2009) Ainda na busca de modelar o processo de negócio do Sistema em questão neste trabalho de Monografia, encontram-se a seguir os Diagramas de Atividades do mesmo. Efetuar Login Figura 2.2 – Diagrama de Atividade Efetuar Login. Fonte: Elaborado pelos autores, 2014. 56 Cadastrar ONG Figura 2.3 – Diagrama de Atividade Cadastrar ONG. Fonte: Elaborado pelos autores, 2014. Cadastrar Usuário Figura 2.4 – Diagrama de Atividade Cadastrar Usuário. Fonte: Elaborado pelos autores, 2014. 57 Manter Pessoa Figura 2.5– Diagrama de atividade Manter Pessoa. Fonte: Elaborado pelos autores, 2014. Manter Animal Figura 2.6– Diagrama de Atividade Manter Animal. Fonte: Elaborado pelos autores, 2014. 58 Manter Atendimento Figura 2.7– Diagrama de Atividade Manter Atendimento. Fonte: Elaborado pelos autores, 2014. Manter Adoção Figura 2.8– Diagrama de atividade manter Adoção. Fonte: Elaborado pelos autores, 2014. 59 Manter Lar Temporário Figura 2.9 – Diagrama de atividade manter Lar Temporário. Fonte: Elaborado pelos autores, 2014. Manter Evento Figura 2.10– Diagrama de Atividade Manter Evento. Fonte: Elaborado pelos autores, 2014. 60 Manter Doação Produto Figura 2.11– Diagrama de Atividade Manter Doação. Fonte: Elaborado pelos autores, 2014. Manter Receita Figura 2.12– Diagrama de Atividade Manter Receita. Fonte: Elaborado pelos autores, 2014. 61 Manter Despesa Figura 2.13– Diagrama de Atividade Manter Despesa. Fonte: Elaborado pelos autores, 2014. Manter Visita Figura 2.14– Diagrama de Atividade Manter Visita. Fonte: Elaborado pelos autores, 2014. 62 Manter Produto Figura 2.15– Diagrama de Atividade Manter Produto. Fonte: Elaborado pelos autores, 2014. Manter Contribuição Figura 2.16– Diagrama de Atividade Manter Contribuição. Fonte: Elaborado pelos autores, 2014. 63 2.4.4 Diagramas MVC O Diagrama MVC é o padrão de arquitetura de software que tem a finalidade de separar a aplicação em três camadas: Modeloque representa as classes em que se está trabalhando, Visão define como e o que será apresentado na tela, e o Controle que gerencia os eventos entre a interface do usuário e o modelo. Efetuar Login Figura 2.17– Diagrama MVC Login Administrador. Fonte: Elaborado pelos autores, 2014. 64 Cadastrar ONG Figura 2.18– Diagrama MVC Cadastrar ONG. Fonte: Elaborado pelos autores, 2014. Cadastrar Usuário Figura 2.19 - Diagrama MVC Cadastrar Usuário. Fonte: Elaborado pelos autores, 2014. 65 Manter Pessoa Figura 2.20 - Diagrama MVC Manter Pessoa. Fonte: Elaborado pelos autores, 2014. Manter Animal Figura 2.21 – Diagrama MVC Manter Animal. Fonte: Elaborado pelos autores, 2014. 66 Manter Atendimento Figura 2.22 – Diagrama MVC Manter Atendimento. Fonte: Elaborado pelos autores, 2014. Manter Adoção Figura 2.23– Diagrama MVC Manter Adoção. Fonte: Elaborado pelos autores, 2014. 67 Manter Lar Temporário Figura 2.24– Diagrama MVC Manter Lar Temporário. Fonte: Elaborado pelos autores, 2014. Manter Evento Figura 2.25 - Diagrama MVC Manter Evento. Fonte: Elaborado pelos autores, 2014. 68 Doação Produto Figura 2.26– Diagrama MVC Manter Doação de Produto. Fonte: Elaborado pelos autores, 2014. Manter Receitas Figura 2.27– Diagrama MVC Manter Receita. Fonte: Elaborado pelos autores, 2014. 69 Manter Despesa Figura 2.28– Diagrama MVC Manter Despesa. Fonte: Elaborado pelos autores, 2014. Manter Visita Figura 2.29– Diagrama MVC Manter Visita. Fonte: Elaborado pelos autores, 2014. 70 Manter Produto Figura 2.30– Diagrama MVC Manter Produto. Fonte: Elaborado pelos autores, 2014. Manter Contribuição Figura 2.31– Diagrama MVC Manter Contribuição. Fonte: Elaborado pelos autores, 2014. 71 2.4.5 Diagramas de Sequência Os Diagramas de Sequência são usados para representar os eventos de entrada e saída do sistema e são importantes para o projeto de objetos. Efetuar Login Figura 2.32– Diagrama de Sequência Efetuar Login. Fonte: Elaborado pelos autores, 2014. Cadastrar ONG Figura 2.33 – Diagrama de Sequência Cadastrar ONG. Fonte: Elaborado pelos autores, 2014. 72 Cadastrar Usuário Figura 2.34 – Diagrama de Sequência Manter Usuário. Fonte: Elaborado pelos autores, 2014. Manter Pessoa Figura 2.35 – Diagrama de Sequência Manter Pessoa. Fonte: Elaborado pelos autores, 2014. 73 Manter Animal Figura 2.36 – Diagrama de Sequência Manter Animal. Fonte: Elaborado pelos autores, 2014. Manter Atendimento Figura 2.37 – Diagrama de Sequência Manter Animal. Fonte: Elaborado pelos autores, 2014. 74 Manter Adoção Figura 2.38 – Diagrama de Sequência Manter Adoção. Fonte: Elaborado pelos autores, 2014. Manter Lar Temporário Figura 2.39 – Diagrama de Sequência Manter Lar Temporário. Fonte: Elaborado pelos autores, 2014 75 Manter Evento Figura 2.40 – Diagrama de Sequência Manter Evento. Fonte: Elaborado pelos autores, 2014 Manter Doação Produto Figura 2.41 – Diagrama de Sequência Manter Doação de Produto. Fonte: Elaborado pelos autores, 2014 76 Manter Receitas Figura 2.42 – Diagrama de Sequência Manter Receitas. Fonte: Elaborado pelos autores, 2014. Manter Despesas Figura 2.43 – Diagrama de Sequência Manter Despesas. Fonte: Elaborado pelos autores, 2014 77 Manter Visita Figura 2.44 – Diagrama de Sequência Manter Visita. Fonte: Elaborado pelos autores, 2014 Manter Produto Figura 2.45 – Diagrama de Sequência Manter Produto. Fonte: Elaborado pelos autores, 2014 78 Manter Contribuição Figura 2.46 – Diagrama de Sequência Manter Contribuição. Fonte: Elaborado pelos autores, 2014. 79 2.4.6 Diagrama de Classes Figura 2.47 – Diagrama de Classes. Fonte: Elaborada pelos autores, 2014. 80 2.4.7 Projeto de Banco de Dados Figura 2.48 – Modelo de Entidade e Relacionamento. Fonte: Elaborada pelos autores, 2014. 81 3. TECNOLOGIAS Neste capítulo são abordadas algumas das principais tecnologias envolvidas no processo de desenvolvimento deste trabalho de monografia, entre elas, a plataforma tecnológica Java e Sistema Gerenciador de Banco de Dados (SGDB), além de ferramentas de desenvolvimento ou Integrated Development Environment (IDEs), no caso o NetBeans. 3.1 JAVA: HISTÓRIA A linguagem de programação Java surgiu na década de 90. Criada por uma equipe de liderada por um programador canadense chamado James Gosling, na empresa Sun Mycrosystems, e com o passar dos anos foi se tornando uma das linguagens de programação mais utilizadas do mundo. (PICCIOLO, 2012). Segundo Microsystems Bugallo o Green (2013), Project, precisamente o berço em1991 da iniciou-se linguagem Java. na Sun James Goslingestavaentre os mentores do Projeto que acreditavam que em algum tempo haveria uma convergência de computadores com equipamentos eletrodomésticos. Após18 meses de trabalho contínuo, surgiu o protótipo *7 (lê-se “StarSeven”), que consistia em um controle remoto com uma interface gráfica touchscreen, capaz de controlar diversos dispositivos e aplicações. Gosling especificou uma nova linguagem de programação para o *7 batizada de “Oak”. Apesar de inviável para época, construíram uma demonstração denominada Movie Wood, na tentativa de controlar televisões e vídeos por demanda. A ideia que tentavam vender com o *7, de viabilizar o negócio de TV a cabo,hoje é realidade: interatividade de telespectadores com a emissora e com a programação por meio de uma grande rede de cabos, a televisão digital. Já na década de 90, com o estouro da internet a estrutura para a viabilização do *7 estava pronta. Ocorreu então o estabelecimento da grande rede interativa que a equipe do *7 vinha tentando vender para as empresas de TV a cabo. A adaptação da Oak para a internet foi rápida e em janeiro de 1995 lançou-se uma nova versão rebatizada de Java. A tecnologia Java tinha sido projetada para se mover por meio 82 das redes de dispositivos heterogêneos, redes como a internet. Aplicações poderiam ser executadas dentro dos navegadores, nos Applets1Java, e o conteúdo disponibilizado pela internet. Buggalo (2013) explica que oHTML dos navegadores promoveu a rápida disseminação da dinâmica tecnologia Java. Com um grande número de usuários, fornecedores de tecnologia como a IBM anunciaram suporte para a tecnologia Java.Desde então, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em Abril de 2009 a Oracle comprou a Sun Microsystems por U$ 7,4 bilhões e o Java passou a chamarse Oracle Java. 3.1.1 Plataforma De acordo com Mendes (2009), Java é uma linguagem de programação orientada a objetos, portável e de alto desempenho, composta pela linguagem, pela Java Virtual Machine (JVM) e mais a Java Aplication Programming Interfaces (API)2. Segundo o autor, muitas plataformas podem ser descritas como uma combinação do sistema operacional e do hardware responsável pelo suporte. No caso de Java, o termo plataforma refere-se somente aossoftware onde são executados os programas. Quanto a serorientada a objetos Mendes diz que “a linguagem Java foi criada seguindo o paradigma da orientação a objetos e, por isso, traz de forma nativa a possibilidade de o programador usar os conceitos de herança, polimorfismo e encapsulamento”. (MENDES, 2009, p.18) Além de multiplataforma, – característica relacionada à capacidade de funcionar em vários sistemas operacionais – Java é compatível a vários tipos de arquiteturas de hardware, desde dispositivos menores, (como laptops e celulares) até os mais complexos (datacenters, supercomputadores e a própria Internet). Já o que garante a portabilidade dos programas desenvolvidos em Java é a Máquina 1 Applet é uma aplicação (pequeno programa) feita com um código especial e que é associada a uma dada página Web, como se fosse um plugin. Um pluginé um pequeno programa que adiciona novas funcionalidades ao programa principal. O termo applet foi utilizado pela primeira vez na aplicação AppleScript da Apple, em 1993, permitindo executar tarefas que não são possíveis utilizando o código html. Os applets Java são applets desenvolvidos em código Java. (CARREIRA, 2011) 2 Interface de Programação de Aplicação (API) é um conjunto de padrões de programação que permite construção de aplicativos. (CIRIACO, 2009) 83 Virtual -Java Virtual Machine (JVM) - que é um conjunto de programas de software que permite a execução de instruções, geralmente escritas em bytecode Java. Os JVMs estão disponíveis para todas as plataformas de software e hardware mais comuns.(GONÇALVES, 2007) O fator desempenhosempre foi motivo de comparação entre a linguagem Java, que é interpretada, e as linguagens compiladas: A plataforma Java oferece um bom desempenho porque ela executa um código que foi previamente analisado e convertido para um formato intermediário. Outro elemento que auxilia no desempenho é o recurso de garbage collector (coletor de lixo), executado em segundo plano, procurando liberar memória que não está sendo mais utilizada. Isso faz com que a memória liberada seja reutilizada por outra parte do sistema. (MENDES 2009, p.18) A plataforma Java permite a criação de programas capazes de implementar o conceito de multithread3, além de sofisticados mecanismos de sincronização entre processos. 3.1.2 Panorama da Linguagem Atualmente fazem uso da plataforma Java cerca de 800 milhões de computadores pessoais, 21,1 bilhões de celulares, 3,5 bilhões de cartões inteligentes, além de webcams, sistemas de navegação de automóveis, dispositivos médicos, entre muitos outros.No Brasil, bancos utilizam Java nos serviços Home Banks, diariamente acessados por milhares de clientes. O Governo Federal também usa Java em alguns sites de grande acesso. (PICCIOLO, 2011) Java possui servidores de aplicações gratuitos e aindaeditores e ambientes de produção livres, os chamados IDEs do Enviroment 3 (Ambiente Integrado de acrônimo Integrated Development Desenvolvimento ou Ferramentas de “O multithread é uma técnica de programação concorrente, que permite projetar e implementar aplicações paralelas de forma eficiente”. (MENDES, 2009, p.19) 84 Desenvolvimento Integrado). O Netbeans, utilizado para a realização deste trabalho, é um dos editores disponíveis no mercado. São ambientes que reúnem características e ferramentas de apoio ao processo de desenvolvimento de software. Visa a maior produtividade dos desenvolvedores e melhor qualidade dos produtos. Geralmente um IDE é composto por um editor de código-fonte, um compilador, um depurador e outros recursos específicos. (SANTOS, 2011) Para Picciolo (2011), o suporte a linguagem é grande uma vez que a comunidade Java cresceu bastante nos últimos anos. Acontecem vários eventos, revistas especializadas, fóruns e outras publicações criadas pelos Java User Groups (JUGs), formados por grupos de usuários, programadores, estudantes, professores, que contribuem gratuitamente com informações pertinentes à Java. 3.1.3 Divisões da Plataforma Java Bugallo (2014) explica em suas três principais edições: Java StandartEdition(JSE): é uma plataforma que oferece um completo ambiente para o desenvolvimento de aplicações para clientes e servidores.Também a base das tecnologias JEE e Java Web Services. A Oracle distribui a JSE na forma de um SDK (Software Development Kit) chamado de JDK (Java Developer Kit), em conjunto com uma JRE (Java Runtime Environment). O pacote do JDK da JSE vem com ferramentas para compilação e geração da documentação (javadoc), empacotador de componentes (jar), entre outras funções. Já a JRE contém a JVM e outros componentes necessários para a execução de aplicações Java. Java Enterprise Edition (JEE): a tecnologia JEE não é um produto, mas sim uma especificação definida atualmente pela Oracleque simplifica e padroniza as aplicações empresariais e multicamadas. Baseia-se nos componentes padronizados, modulares e reusáveis. Oferece um conjunto completo de serviços para estes componentes. Manipula muitos detalhes do comportamento da aplicação automaticamente. Não há necessidade de reaprender a programar, pois se utiliza dos mesmos recursos do Java JSE. 85 O modelo de programação JEE é baseado em containers4, cuja estrutura permite o desenvolvimento de aplicações distribuídas. Para cada tipo de aplicação baseada nesta plataforma existe um container específico. Se for uma aplicação servidora web, a mesma será executada através do container web, no caso de ser uma aplicação cliente que utiliza componentes JEE, precisará do Aplication Client Container para ser executada.(SAMPAIO, 2011) Sampaio (2011) explica que as aplicações corporativas do modelo Java EE podem ser vistas como um modelo de tiers (ou camadas com separação de conceitos): 1. Na camada cliente tem-seo web browser ou applets. Pode também haver aplicações Java rodando dentro do Java EE Client Container; 2. Na camada de apresentação (ou web tiers) encontram-se componentes Web da arquitetura Java EE, como Java Server Pages (JSP), Servlets e Java Server Faces; 3. Na camada de negócios são rodados os componentes remotos queimplementam regras de negócio ou representam entidades de dados, osEnterprise JavaBeanse Web Services; 4. Na camada EIS (Enterprise Information Systems) tem os servidores derecursos corporativos, como Servidores de Banco de Dados ou Mainframes. Normalmente, são consumidos utilizando as interfaces Java Data Base Connectie ou Java Connector Architeture. 4 Dificilmente uma aplicação gráfica é composta por um único componente (...). Para este tipo de aplicação, um componente fundamental é a área onde os demais componentes da aplicação estarão dispostos. Um componente que pode conter outros componentes é denominado um container. Em Java, a classe Containeré a classe abstrata que define as funcionalidades básicas associadas a um container, tais como adicionar e remover componentes. (RICARTE, 2002) 86 Figura 3.1 – O carregador da classe lê os bytecodes e os aloca na memória. Fonte: GOOGLE, 2014 Java Micro Edition (JME): A tecnologia JME é voltada para aplicações executadas em pequenos dispositivos como celulares, smartphones, controles remotos e afins. Ela possui uma API bastante completa para o desenvolvimento de aplicações para dispositivos móveis. 3.1.4 Etapas do Desenvolvimento e Execução de uma Aplicação Java Varallo (2012) explica as fases pelas quais uma aplicação passa até ser executada. Na primeira, ocorre a criação e edição de arquivos em um programa editor,IDEs, onde são inseridos os códigos pelo programador e posteriormente salvos em uma unidade de armazenamento com a extensão “.java”. Fase 2: Compilação do programa Java em bytecodes Compilador cria bytecodes que são armazenados com extensão .class. Os bytecodes são executados pela Máquina Virtual que simula um computador, mas oculta o sistema operacional e o hardware subjacente dos programas que interagem com ela, garantindo a possibilidade de execução de programas Java em vários sistemas operacionais distintos. Fase 3: Carregamento de um programa na memória 87 O carregador da classe lê os bytecodes e os aloca na memória. A JVM armazena o programa na memória para executá-lo e efetua o carregamento. O carregador de classe da JVM pega os arquivos .class que contêm os bytecodes do programa e os transfere para a memória primária. Fase 4: Verificação da integridade bytecodes Enquanto as classes são carregadas, o verificador examina seus bytecodes para assegurar que são válidos e não violam restrições de segurança do Java. Fase 5:A JVM faz a leitura dos bytecodes e compila para uma linguagem de computador. Os JVMs executam bytecodes utilizando uma combinação de interpretação chamada compilação JIT (Jut In Time) – conhecido como compilador Java Hot Spot, que traduz os bytecodes para a linguagem de máquina, para o computador real em que o programa é executado. Quando a JVM encontra novamente essas partes compiladas, o código de linguagem de máquina é executado mais rápido. 3.2 JAVA SERVER FACES (JSF) De um conteúdo essencialmente estático no começo, a internet tem evoluído cada vez mais para aplicações web mais complexas, eficientes e atrativas para o usuário final. São criadas tecnologias que prometem facilidades e resultados mais rápidos no desenvolvimento, entre elas os Servlets. Consistem em uma classe Java responsável por estender a capacidade dos servidores que hospedam aplicativos, acessados através de um modelo de programação de solicitação e resposta. (SARTORI e FOSCHINI, 2013). Segundo Sartori e Foschini (2013), os Servlets exigem a escrita do código de saída Hyper Text Markup Language – Linguagem de Marcação de Hipertexto (HTML) na classe Java, tornando a legilibilidade e a manutenção mais complicadas porque não há uma separação tão clara do código HTML e do código Java, fatores estes que forçaram o surgimento do Java Server Pages (JSP), pois executa toda a capacidade dinâmica da tecnologia Servlet. Páginas JSP fazem o caminho inverso 88 na criação de conteúdo estático, pois são adicionadas código Java nas páginas HTML. Outra importante ferramenta de desenvolvimento são os chamados frameworks. Neste trabalho será tratado especificamente o framework Java Server Faces (FSF), de interface de usuário, User Interface (UI). É formado por componentes de UI, programação orientada a eventos e permite que desenvolvedores criem componentes adicionais. JSF foi desenvolvido através do Java Community Process (JSR-314) e estabelece o padrão para a construção de interfaces de usuário ao lado do servidor (JAVASERVER, 2011). É um framework Java que simplifica o desenvolvimento de interfaces de usuário, pois mesmo que se crie uma solução para o mesmo conjunto de problemas resolvidos pelo JSF, esta seria possivelmente implementada fora da abordagem padrão da comunidade Java. O JSF evita esse fator, oferecendo um robusto framework estabelecido com padrões bem estabelecidos, construído a partir de experiências anteriores para Java Web. (SARTORI e FOSCHINI, 2013). 3.2.1 MVC e JSF Geary e Horstmann (2012) JSF é um framework- web baseado no padrão Model View Controller – Modelo Visão Controle (MVC). Sua principal função é a de separar osdados ou a lógica de negócios da interface do usuário e do fluxo da aplicação. O Modelo representa a lógica de negócios e fornece ao Controlador o acesso aos dados. A Visão representa a interface com o usuário, sendo assim define a forma como os dados serão apresentados e encaminha as ações dos usuários para o controlador. Já a camada de Controle é responsável por ligar o Modelo e a Visão, além de interpretar as ações do usuário e as traduz para uma operação sobre o modelo e desta forma gera uma visualização apropriada (GONÇALVES, 2007). O papel do JSF neste contexto é o de relacionar a interface com o modelo. Ele cria a comunicação com o modelo reagindo aos eventos solicitados pelos usuários. Dentro desta cadeia de eventos o modelo por sua vez é responsável por atualizar os seus dados com base nos valores criados pelo evento e, então, o JSF 89 retorna mais uma vez os dados processados à interface. (GEARY; HORSTMANN, 2012) Figura 3.2 – Framework JSF. Fonte: Openbiz.me, 2012. 3.2.2 Como Funciona o JSF Primeiro o navegador é conectado à página inicial Extensible Hypertext Markup Language (XHMTL) da aplicação. Em seguida o JSF verifica estas páginas e suastags5. Depois de lidas, essas tags formam uma árvore de componentes, assim é estabelecida uma estrutura de dados composta por objetos Java para todas as tags da interface da página JSF. Após a execução das tags do JSF, a página HTML é renderizada. Neste processo as tags JSF são convertidas em tags HTML simples. Após a etapa de renderização ocorre a de codificação e decodificação das tags HTML. No caso do envio de um formulário, por exemplo, o usuário digita seu nome e senha e aciona o botão enviar. O navegador envia os dados deste formulário para o servidor web através do método POST (método em que os parâmetros passados não podem ser visualizados através da Uniform Resource Locator6(URL). Dados de formulários são pares de strings, e esses pares são armazenados em uma tabela hash7. Por meio do processo de decodificação o JSF 5 Tags são rótulos usados para informar ao navegador como deve ser apresentado o website. (HTML.NET, 2013) 6 Localizador Padrão de Recursos – URL- é um endereço virtual com um caminho que indica onde está o que o usuário procura. Pode ser tanto um arquivo, uma máquina, uma página, um site, uma pasta, entre outros. Também pode ser o link ou endereço de um site. (BATISTA, 2011) 7 Um hash é uma sequencia de letras ou números gerados por um algoritmo. O conceito teórico diz que hash é a transformação de uma grande quantidade de informações em uma pequena quantidade 90 possibilita que os componentes inspecionem e interpretem os dados da tabela hash. Tudo ocorre após a execução das tags do JSF. É também através do componente UIInput que a classe bean é atualizada. GEARY e HORSTMANN (2012) definem bean como uma classe Java responsável por mostrar propriedades e eventos a um determinado framework, JSF por exemplo. No caso de uma página para o acesso de um usuário, por exemplo, o processo de login é iniciado após o componente UICommand fazer a verificação se ocorreu o acionamento do botão enviar. Caso tenha ocorrido, um evento é disparado. (GEARY; HORSTMANN, 2012).Na figura 2.58 (abaixo) é ilustrado o processo de codificação e decodificação de páginas JSF. Figura 3.3 – Codificação e Decodificação JSF. Fonte: Tecnologia e Conhecimento, 2011. 3.3 HIBERNATE E JPA Trabalhar com Java e Banco de dados exige pensar um sistema sob dois pontos de vistas diferentes: modelo orientado a objetos e modelo relacional. Num Sistema Gerenciador de Banco de Dados (SGBD) modelo relacional, as informações são representadas por tabelas e colunas, enquanto em linguagem Java (orientada a objetos) são usados classes e atributos. Dadas as particularidades de cada modelo, de informações. Essa sequencia busca identificar um arquivo ou informação unicamente (MARTINS, 2007) 91 frequentemente depara-se com a necessidade de “transformar” objetos em registros e vice-versa. Para auxiliar nestas tarefas surgiram ferramentas de Mapeamento Objeto Relacional (ORM). O Hibernate é uma ferramenta – framework - ORM e apesar de ter surgido sem a especificação JPA (Java Persistence API), é comum é comum que seu acesso seja por meio dela. (CAELUM, 2014). O mapeamento é realizado das tabelas de um banco de dados relacional para uma classe Java ou vice-versa. A utilização de Hibernate possibilita realizar os mapeamentos entre classes e tabelas, através do uso de Extensible Markup Language (XML), diretamente no código Java ou por JPA : “O Hibernate abstrai o seu código SQL, toda a camada JDBC e o SQL será gerado em tempo de execução. Mais que isso, ele vai gerar o SQL que serve para um determinado banco de dados, já que cada banco fala um "dialeto" diferente dessa linguagem. Assim há também a possibilidade de trocar de banco de dados sem ter de alterar código Java, já que isso fica de responsabilidade da ferramenta.”(CAELUM,2014) Para configurar o Hibernate em uma aplicação, devemos criar um arquivo chamado persistence.xml. O conteúdo desse arquivo contém informações sobre o banco de dados, como a url de conexão, usuário e senha além de dados sobre a implementação JPA, que será utilizada. (K19, 2012). Baseado no conceito Plan Old Object (POJO), quem dizer, “Bom e Velho Objeto Java”, o JPA incorpora ideias de renomados frameworks de persistência, Hibernate, por exemplo, para padronizar o OMR e Java. (GONÇALVES, 2008) “Na JPA, os objetos persistentes são denominados entidades (Entities). Uma entidade é um objeto simples (POJO), que representa um conjunto de dados persistidos no banco.” (GONÇALVES, 2008, p. 101). As classes e interfaces da API JPA encontram-se no pacote javax.persistence o que permite se fazer o mapeamento da aplicação através de anotações conhecida também por Java Annotations8 Os objetos contidos nos POJOs, entidades de persistência, possuem 8 Java Annotations (Anotação Java) são tipos especialmente definidos com o intuito de simplificar tarefas em Java com uma anotação, colocada em frente a (ou acima de) elementos de programa Java como classes, métodos, campos e variáveis. Quando um elemento do programa é anotado, o compilador lê a informação contida nessa anotação e pode reter essa informação nos arquivos de classe ou dispor disso de acordo com o que foi especificado na definição de tipo da anotação. (GONÇALVES, p.102, 2008) 92 diversas anotações. Na API JPA cada anotação é precedida pelo símbolo de arroba “@” e possui um significado. Algumas dessas anotações: @Entity é a principal anotação do JPA. Ela deve aparecer antes do nome de uma classe e deve ser definida em todas as classes que terão objetos persistidos no banco de dados. As classes anotadas com @Entity são mapeadas para tabelas. Por convenção, as tabelas possuem os mesmos nomes das classes. Mas, podemos alterar esse comportamento utilizando a anotação @Table. Os atributos declarados em uma classe anotada com @Entity são mapeados para colunas na tabela correspondente à classe. Outra vez, por convenção, as colunas possuem os mesmos nomes dos atributos. E novamente, podemos alterar esse padrão utilizando para isso a anotação @Column. @Id é utilizada para indicar qual atributo de uma classe anotada com @Entity será mapeado para a chave primária da tabela correspondente à classe. Geralmente o atributo anotado com @Id é do tipo Long. @Generated Value geralmente vem acompanhado da anotação @Id. Serve para indicar que o valor de um atributo que compõe uma chave primária deve ser gerado pelo banco no momento em que um novo registro é inserido. (K19, 2012) 3.4 SISTEMAS GERENCIADORES DE BANCO DE DADOS O processamento de dados tem sido, desde os primórdios da computação, o principal papel dos aplicativos. Os usuários necessitam de ferramentas que simplifiquem as tarefas de gerenciamento de dados e permitam a extração de informações úteis de forma oportuna. (RAMAKRISHNAN; GEHRKE, 2008) Um banco de dados é uma coleção organizada de dados (DEITEL, 2010). E ainda, de acordo com DATE (2004, p. 6), um sistema de banco de dados é “um sistema computadorizado cuja finalidade geral é armazenar informações e permitir que os usuários busquem e atualizem essas informações quando as solicitar”. 93 “Um sistema gerenciador de banco de dados – ou Data Base Management System (DBMS) - é um software projetado para auxiliar a manutenção e utilização de vastos conjuntos de dados” (RAMAKRISHNAN; GEHRKE, 2008). SGBDs fornecem mecanismos para a armazenagem, organização, recuperação e modificação de dados e permitem seu acesso e armazenamento sem envolver a representação interna dos dados (DEITEL, 2010 p. 899). Juntamente com os bancos de dados relacionais, que são, conforme Deitel (2010), os mais populares, é utilizada amplamente uma linguagem internacional, a Structured Query Language (SQL) ou Linguagem de Consulta Estruturada. Foi criada no começo da década de 1970 pela IBM Research, para o protótipo de um sistema de banco de dados chamado System R (DATE, 2004, p. 71). É baseada nas linguagens de Álgebra e Cálculo Relacional e hoje é a linguagem padrão dos Sistemas Gerenciadores de Bancos de Dados Relacionais. Inclui, entre seus diversos aspectos: Linguagem de manipulação de dados (DML); Linguagem de definição de dados (DDL); Gatilhos e restrições de integridade avançadas; Gerenciamento de transação; Segurança; Recursos avançados. 3.5 MYSQL Neste protótipo de sistema será utilizado o MySQL Community Server, versão esta que possui código fonte aberto e é distribuída gratuitamente pela Oracle Corporation, dona de duas licenças a gratuita e acomercial. (MYSQL, 2014a) Segundo Gonçalves (2008), trata-se de um sistema de gerenciamento de banco de dados relacional rápido e flexível, além de confiável e de nível corporativo. Escrito na linguagem de programação C e C++, MySQL é aceito por diversos sistemas operacionais como: Linux, Windows, FreeBSD, Solaris e Mac OS X e quanto ao limite da capacidade de armazenamento é suportável para grande volume 94 de dados. Pode chegar a 200.000 tabelas armazenadas e cerca de 5.000.000.000 linhas de dados. (MYSQL, 2014b) MySQL possui conectores e APIs que permitem ao programa cliente (programa que se conecta e utiliza recursos do banco), acessar os seus protocolos e recursos. Dessa maneira, conexões e instruções MySQL são executadas de programas escritos em diversas linguagem de programação. O driver JDBC utilizado neste trabalho é o Connector/J, suportado oficialmente pela mantenedora do MySQL. Utilizando esse driver todos os tipos de aplicações Java podem acessar um banco MySQL e seus dados.(GONÇALVES, 2008) O MySQL disponibiliza ao usuário a possibilidade manipulação de dados através de interface de linha de comando o que pode ser feito também na interface gráfica, o MySQL Workbench. O Workbench é estruturado comferramentas para conexão, consulta e modelagem de dados, além da possibilidade da criação do Modelo de Entidade e Relacionamento (MER) das tabelas do banco de dados e vice e versa. Através do MER tabelas podem ser geradas automaticamente pelo recurso de engenharia reversa. (MYSQL, 2013c) 3.6 SERVIDOR GLASSFISH Os servidores de aplicação surgiram na década de 1990 para dar suporte aos desenvolvedores na execução de sistemas web. Proporcionaram a abstração do programador em relação à complexidade da infraestrutura de comunicação e de acesso aos sistemas publicados. (DEVMEDIA, 2013) O servidor web GlassFish surgiu de forma tímida em 2006, através do Projeto GlassFish, ainda pelas mãos da Sun Microsystems. Embora exista a versão proprietária chamada GlassFish Enterprise Server, o servidor GlassFish é gratuito e possui código aberto. Com a aquisição da Sun pela Oracle essa é que continuou o desenvolvimento e o suporte ao mesmo. (DEVMEDIA, 2013). Segundo o site Devmedia (2013), para servir conteúdo webo servidor de aplicações da Oracle emprega uma derivação do Apache Tomcat. Desenvolvido para a plataforma Java EE (Java Enterprise Edition), de nível corporativo que oferece desempenho, confiabilidade, produtividade e facilidade de 95 uso. Além disso, também apresenta suporte total às novas especificações Java para web. 3.7 PRIMEFACES É um framework desenvolvido pela Prime Teknoloji , uma empresa turca. Esta ferramenta possui um conjunto de componentes destinados ao JSF, e para realizar chamadas assíncronas ao servidor já tem implementado por padrão Ajax9 (Asynchronous Java Script and Extensible Markup Language), o que diminui consideravelmente o esforço do desenvolvedor. O Primefaces possui também uma variedade de temas, que permite mudar a aparência dos componentes de forma fácil e simples. (GAMES, 2012) 3.8 JQUERY JQuery é uma biblioteca Java Script de código aberto criada em 2006 por John Resig com o objetivo de simplificar o código Java Script e o uso do AJAX. Entre suas funcionalidades, a biblioteca JQuery permite : modificar a aparência da página através de CSS; alterar o conteúdo da página; responder interações do usuário com a página; adicionar animações a uma página; recuperar informações do servidor sem precisar recarregar a página usando AJAX; simplificar tarefas comuns do Java Script, como iterações e manipulação de arrays. oferecesuporte a vários plugins que podem simplificar o desenvolvimento de páginas web. 9 O principal componente é o XMLHttpRequest. Este objeto permite a um código JavaScript fazer o envio de dados e receber uma resposta de um servidor sem a necessidade de recarregar toda a página Web. Daí vem o termo Asynchronous, pois os dados não precisam necessariamente ser carregados ao mesmo tempo em que se carrega a página, em outras palavras, não precisa haver sincronia do carregamento de dados com o carregamento da página Web. (SIGNIFICADOS, 2014) 96 4. RESULTADOS Nesta seção tem-se a demonstrações de como algumas tecnologias tratadas no capítulo três foram utilizadas para o desenvolvimento deste protótipo voltado às ONGs da área de resgate e cuidados a animais maltratados. Assim, é possível conferir algumas das principais telas das funcionalidades desenvolvidas. 4.1 BANCO DE DADOS Como descrito no capítulo anterior, o banco de dados utilizado para a implementação deste projeto foi o MySQL 5.6. Apesar de algumas vezes ter sido utilizada a interface de linha de comando, na maioria das vezes, para facilitar a criação de tabelas e funções, preferiu-se a interface gráfica MySQL Workbench também utilizada para construir o modelo entidade relacionamento das tabelas (Conferir a figura 2.00 no capítulo dois). Segue abaixo a figura 4.58, exemplo da utilização da Interface da Linha de Comando e na figura 4.59, Interface Gráfica do Workbench. Figura 4.1 – Interface de linha de comando. Fonte: Elaborada pelos autores, 2014. 97 Figura 4.2 – Interface gráfica do programa MySQL Workbench. Fonte: Elaborada pelos autores, 2014. 4.2 PROTÓTIPO DO SISTEMA 4.2.1 Páginas Web Considerando os fatores tempo, temas e objetivo a ser atingido, as páginas do site podem ser aproveitadas de diversas maneiras, tais como:transmitir informações fundamentais sobre a Entidade e sua atuação tanto via produção textual quanto visual, divulgar eventos, campanhas e publicação de informações de utilidade pública. Como pode ser conferido na figura 4.3, logo abaixo do cabeçalho, o usuário tem a barra de navegação que permite acesso às demais páginas como: Eventos, 98 Quem Somos, Como Ajudar, Adoção, Animais e Contato. Figuras 4.3, 4.4,4.5,4.6,4.7,4.8 e 4.9, 4.10. Seguem algumas telas, exemplos das páginas web. Figura 4.3 – Página web inicial. Fonte: Elaborada pelos autores, 2014. Figura 4.4 – Ilustração da Página Quem Somos. Fonte: Elaborada pelos autores, 2014. 99 Figura 4.5 – Página interna, Menu Eventos. Fonte: Elaborada pelos autores, 2014. Figura 4.6 – Página Interna disponível no submenu Doações em Dinheiro. Fonte: Elaborada pelos autores, 2014. 100 Figura 4.7 – Página interna Voluntários. Fonte: Elaborada pelos autores, 2014. Figura 4.8– Página acessada pelo Menu Contato. Fonte: Elaborada pelos autores, 2014. 101 Figura 4.9– Página acessada pelo Menu Animais, submenu Desaparecidos. Fonte: Elaborada pelos autores, 2014. Figura 4.10 – Página interna, submenu Tipos. Fonte: Elaborada pelos autores, 2014. 102 4.2.2 Protótipo do Sistema Web Para o desenvolvimento das funcionalidades abordadas neste tópico utilizouse o padrão de projeto MVC, também já contextualizado no capítulo dois e representado na figura 4.11. Somam-se a ele os frameworks JSF, JPA e Primefaces, usados inúmeras vezes no decorrer do desenvolvimento das páginas de gerenciamento pelo usuário. V M C Figura 4.11 – Indicação do MVC representado pelos pacotes do Projeto no Netbeans. Fonte: Elaborada pelos autores, 2014. Figura 4.11 – MVC, representado pelos Pacotes. Fonte: Elaborada pelos autores, 2014. Segue abaixo na figura 4.12 exemplo do código que representa as anotações JPA neste trabalho. Estas anotações são responsáveis por determinar como ocorrerá o funcionamento de frameworks de persistência como Hibernate em Java. É possível observar na figura o mapeamento completo do Objeto Relacional da aplicação denominado de entidades (Entities). Essas Entities representam o 103 conjunto dados que serão persistidos no banco de dados. Os objetos contidos nas entidades de persistência (assunto já tratado no capítulo três) possuem diversas anotações (annotations), que no JPA são precedidas pelo símbolo de arroba “@”. Figura 4.12 – Especificações JPA implementadas no banco de dados. Fonte: Elaborada pelos autores, 2014. 104 Os frameworks JSF e Primefaces são os responsáveis pelas páginas de interface de usuários deste protótipo. Um dos componentes utilizado do Primefaces é o DataTable, como pode ser conferido na Figura 4.13, exemplo do código que representa a criação de uma tabela dinâmica utilizada no decorrer do desenvolvimento da aplicação. Figura 4.13- Implementação do componente DataTable de animal. Fonte: Elaborada pelos autores, 2014. 105 Na figura 4.14 pode ser observadoo código da Classe Abstrata (Abstract Facade) que configura, por padrão, um modelo para as demais classes abstratas. O modelo representa uma entidade do banco de dados. O método get “pega” o modelo e cria a classe de abstrata. Figura 4.14– Classe Abstrata gerencia as demais classes abstratas. Fonte: Elaborada pelos autores, 2014. 106 No código exemplificado na figura 4.15 é possível verificar o uso do escopo de sessão do JSF. Isto é, quando o usuário acessar o sistema essa especificação estabelece com o servidor uma sessão. Dados gerenciados no objeto que representa este escopo existem desde o instante inicial, quando o usuário acessa a aplicação, até que essa expire por inatividade, seja voluntariamente ou finalizada pela aplicação. Figura 4.15- Uso da anotação JSF @Session Scoped. Fonte: Elaborada pelos autores, 2014. 107 A página inicial (Index), figura 4.16, tem a finalidade de direcionar os usuários para os recursos desejados, de acordo com o menu, no canto esquerdo. Por exemplo, com um clique em uma das abas será exibida a próxima página com suas opções: cadastrar, alterar e excluir, disponibilizadas automaticamente sempre que a página for acessada: figuras 4.17, 4.18, 4.19 e 4.20. Caso usuário queira retornar à página inicial deve clicar na opção index. Figura 4.16- Página inicial do protótipo OngWeb. Fonte: Elaborada pelos autores, 2014. 108 Figura 4.17 – Mensagem de Cadastro de receita realizado Fonte: Elaborada pelos autores, 2014. Figura 4.18 – Mensagem de Cadastro de Pessoas, diferenciado pelo campo Tipo Fonte: Elaborada pelos autores, 2014. 109 Figura 4.19 – Relação de despesas cadastradas. Fonte: Elaborada pelos autores, 2014. Dentre as funcionalidades também é possível conferir a opção de relatório, constando informações já cadastradas. Na tela apresentada no exemplo abaixo, figura 4.20, é o resultado desta funcionalidade Relatório Usuário. Figura 4.20 – Relação de animais cadastrados. Fonte: Elaborada pelos autores, 2014. 110 4.3 CONSIDERAÇÕES SOBRE O CAPÍTULO Foram apresentados neste capítulo alguns exemplos das funcionalidades do protótipo desenvolvido, demonstradas por meio de ilustraçõesde modo que possa facilitar a compreensão do trabalho desenvolvido nesta monografia. Como demonstrado, além do site composto por diversas páginas sendo que cada uma tem em si um objetivo definido no tocante ao tipo de informação ou dado que será divulgado. Com relação às funcionalidades propostas na fase da análise de requisitos, segundo capítulo, conseguiu-se alcançar total implementação, todas no formato de tabelas. Pode-se realizar o gerenciamento dos cadastros em geral através das opções: cadastrar, alterar, excluir, selecionar e listar. Ao escolher esta última, o usuário tem acesso a um relatório sucinto do registro em questão. Já o gerenciamento de registros financeiros pode ser feito nos campos Receitas e Despesas, alterando automaticamente o Caixa. Sugestões para trabalhos futuros: a geração de documentos dinamicamente assim como a capacidade de imprimí-los após preencimento, a disponibilização de formulários no site aos interessadas em adotar um animal junto a Organização outra possibilidade neste sentido seria permitir o cadastro via site de novos sócios. E para finalizar, extender o protótipo para o desenvolvimento de um aplicativo móvel voltado celulares e a outros dispositivos móveis. 111 CONCLUSÃO O presente trabalho teve como objetivo o desenvolvimento do protótipo de um sistema web voltadado à ONGs, atuantes no resgate e cuidados a animais maltrados. Seu desenvolvimento baseia-se na hipótese de que um sistema informatizado facilitaria a atuação de voluntários e colaboradores na execução de suas atividades cotidianamente. Independente do volume de informações geradas por uma Organização é importante que gestores busquem formas de armazená-las e apresentá-las à comunidade na qual estão inseridas. Sob esta pespectiva se propôs o desenvolvimento deste projeto, assim como o aproveitameno dos espaços inerentes às páginas web como um canal de feedback entre a própria Entidade e seus contribuintes e apoiadores. O que a principio foi dificuldade, desenvolver um protótipo de um sistema informatizado tornou-se uma grande experiência e aprendizado não só por ter a oportunidade de entender a lógica do negócio, a dinâmica de atuação de duas ONGs tomadas como exemplo, mas por ampliar o conhecimento sobre as tecnologias utilizadas e a eficácia das mesmas no desenvolvimento deste trabalho. O modelo MVC foi o eixo de todo o trabalho, pois permitiu o desenvolvido de modo claro ao separar as interfaces, controles e modelos. O ORM Hibernate juntamente com JPA foram fundamenais na conexão das duas tecnologias, a linguagem orientada a objetos e um banco de dados relacional. Hibernate e JPA foram usados para realizarem o mapeamento objeto-relacional e na geração de classes, representando entidades do banco de dados relacional MySQL. É importante reiterar a possibilidade deste trabalho ter continuidade no sentido de almejar sua ampliação. Como já foi colocado, certamente seria bem aproveitada a capacidade de gerar dinamicamente documentos. Outra sugestão é a de extender o protótipo para o desenvolvimento de um aplicativo móvel voltado a celulares e a outros dispositivos móveis. A realização deste trabalho ultrapassa a simples motivação pessoal dos autores, como a afinidade ao tema. Sua finalização responde ainda o desejo dos mesmos de retribuir o conhecimento adquirido numa instituição pública durante o 112 curso, dispondo de um trabalho que, salvo algumas adaptações e melhorias, poderá auxiliar na atuação de pessoas que trabalham sem vislumbrar retorno financeiro ou material, mas também em prol da sociedade como um todo. 113 REFERÊNCIAS BIBLIOGRÁFICAS BUGALLO, Luis G.Desenvolvimento com Java. 2013. Disponível em: <http://bugalloti.wordpress.com/2013/09/20/desenvolvimento-com-java-nova-area-dblog-historia-caracteristicas-plataformas-e-muitos-mais/> Acesso em: 23 fev. de 2014. BATISTA, J.O que é URL. 2011. Disponível em:<http://www.tecmundo.com.br/tira-duvidas/144779/> Acesso em: 20 mar. de 2014. CAELUM. Apostila Java para Desenvolvimento Web. Capítulo 14 Uma Introdução Prática ao JPA com Hibernate. Disponível em: <http://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-comhibernate/> Acesso em: 20 abr. de 2014. DATE C. J. Introdução a Sistemas de Bancos de Dados. Tradução Daniel Vieira. 8.ed. Rio de Janeiro: Elsevier, 2004. DEITEL. Paul; DEITEL H. Java – Como Programar. Tradução: Edson Furmankiewicz. 8. ed. São Paulo: Pearson Prentice Hall, 2005. DIAS, F. S. Análise das relações interdisciplinares das pesquisas científicas em sistemas de informação. Perspect. Ciênc. Inf., Belo Horizonte, v. 13, n. 1, abr. 2008. Disponível em: <http://www.scielo.br/pdf/pci/v13n1/v13n1a13/> Acesso em: 20 mar. de 2013. DOUGLAS, C. O que é API? Disponível <http://www.tecmundo.com.br/programacao/1807-o-que-e-api-.htm/> em: 20 mar. de 2013. em: Acesso GEARY, D.; HORSTMANN C. Core Java Server Faces. Tradução Lúcia Helena. 3. ed. Rio de Janeiro: Alta Books, 2012. GONÇALVES, Edson. Desenvolvendo aplicações Web com JSP Servlets, Java Server Faces, Hibernate, EJB3 Persistence e Ajax. 1ª Ed. Rio de Janeiro, Editora Ciência Moderna, 2007. GUEDES, Gilleanes T. A. UML 2 Uma Abordagem Prática. 2009. Disponível em: <http://www.novateceditora.com.br/livros/uml2abordagempratica/capitulo978857522 938.pdf/>. Acesso em: 11 fev. de 2014. KALIANE, Ap. P. Desenvolvimento de Sistema para Controle das Atividades do Setor de Estágio da Fatec Lins. 2013. Monografia (Curso Superior de Tecnologia em Banco de Dados) – Faculdade de Tecnologia de Lins, Centro Estadual de Ensino Tecnológico “Paula Souza”, Lins. 114 K19 Treinamentos Persistência com JPA2 e Hibernate. Disponível em: <http://www.k19.com.br/cursos/persistencia-com-jpa2-e-hibernate/> Acesso em: 01 maio de 2014. LARMAN, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 2004. Disponível em: <http://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp /0131489062/>.Acesso em: 11 fev. de 2014. MARTINS T. O Que é Tabela Hash? 2007.Disponível em:<https://br.answers.yahoo.com/question/index?qid=20070610135142AABxfxU/>. Acesso em: 25 fev. de 2014. MEDEIROS, E. Desenvolvendo software com UML 2.0 definitivo. 1 ed. São Paulo: Makron Books, 2004. MENDES, Douglas R. Programação Java com Ênfase em Orientação a Objetos. 2009.Disponível em: http://novatec.com.br/autores/douglasmendes /. Acesso em: 25 fev. de 2014. ______.MySQL 5.5 Reference Manual Operating Systems Suppoted by MySQL Community Server.Disponível em: <http://dev.mysql.com/doc/refman/5.5/en/supported-os.html> Acesso em: 20 abr. de 2014a. ______.MySQL. MySQL 5.5 Reference ManualThe Main Features of MySQL. Disponível em: <http://dev.mysql.com/doc/refman/5.5/en/features.html> Acesso em: 20 abr. de 2014b. ______. MySQL 5.5 Reference Manual Chapter 25. MySQL Workbench. Disponível em: <http://dev.mysql.com/doc/refman/5.5/en/workbench.html> Acesso em: 20 abr. de 2014c. ORACLE.About Java for Mobile Devices.Disponível em:< http://www.oracle.com/technetwork/java/javame/javamobile/overview/about/index.htm /> Acesso em: 17 mar. de 2014. PICCIOLO, Antonio F. Java – Vantagens e Desvantagens. 2011. Disponível em: <http://osum.sun.com/profiles/blogs/java-vantagens-e-desvantagens/> Acesso em: 23 fev. de 2014. PRESIDENCIA DA REPÚBLICA, Brasília, DF. Decreto-Lei nº 9.790/99, Capítulo I, Art. 1º. 1999. Disponível em: <http://www.licijur.com.br/index.php/legislacao/136-lei979099-dispoe-sobre-as-ong/>. Acesso em: 11 fev. de 2014. GAMES, William. Visão Geral Sobre Primefaces. 2012 Disponível em: <http://williamgamers.wordpress.com/2012/06/04/visao-geral-sobre-primefaces/> Acesso em: 30 mar. de 2014. 115 QUÉAU, P. A Revolução da Informação em Busca do Bem Comum. RevistaCiência da Informação. Brasília, DF. 1998. Disponível em: <http://revista.ibict.br/ciinf/index.php/ciinf/article/view/365/326/>. Acesso em: 21 fev. de 2013. SAMY, Maurício S.A Biblioteca do Programador JavaScript. 2014. Disponível em: <http://novatec.com.br/livros/jquery/capitulo9788575221785.pdf/>. Acesso em: 21 fev. de 2014. SAMPAIO, Cleuton. Java Enterprise Edition6: Desenvolvendo Aplicações Corporativas. 1. ed. Rio de Janeiro: Brasport, 2011. SANTOS, Alexandre K.Os IDE’s (Ambientes de Desenvolvimento Integrado) como ferramentas de trabalho em informática. 2011. Disponível em: <http://wwwusr.inf.ufsm.br/~alexks/elc1020/artigo-elc1020-alexks.pdf/>. Acesso em: 21 nov. de 2013. SARRAIPO, E. Especialista defende penas mais rígidas para maus tratos – Jornal Santuário. 2014. Disponível em: <http://jornal.editorasantuario.com.br/protecao-animal-especialista-defende-penasmais-rigidas-para-maus-tratos/> Acesso em: 11 fev. de 2014. SARTORI Claudinei F.; FOSCHINI Ivan J. Java Server Faces 2.0: Melhorias em relação à Versão 1.2 para o Desenvolvimento Web. 2013. Disponível em: <evistatis.dc.ufscar.br/index.php/revista/article/view/36/>. Acesso em: 25 fev. de 2014. SERVLET. Scribd. 2010. Disponível em: < http://pt.scribd.com/doc/7238159/ JAVAServlet/>. Acesso em: 24 abr. 2014. SIGNIFICADOS. O que é AJAX.2014. em:<http://www.significados.com.br/ajax/>. Acesso em: 25 abr. 2014. Disponível RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de Gerenciamento de Banco de Dados. Tradução Acauan Pereira Fernandes, Celia Taniwaki, João Tortello. Revisão técnica Elaine Barros Machado de Sousa. 3. ed. São Paulo: McGraw-Hill, 2008. TURINE, Marcelo A. S.; MASIERO, Paulo C. Especificação de Requisitos: Uma Introdução.1996.Disponívelem:http://www2.unemat.br/rhycardo/download/engenhari a_de_requisitos.pdf />. Acesso em: 11 fev. de 2014. VAGOS, José C. M. O que é Applet? 2011. Disponível em: < http://pt.shvoong.com/internet-and-technologies/websites/2156949-que-%C3%A9um-applet//>. Acesso em: 27 fev. de 2014. VARALLO, Thiago V.P. Etapas do Desenvolvimento e Execução de Uma aplicação Java. 2012. Disponível em: <http://www.devmedia.com.br/etapas-dodesenvolvimento-e-execucao-de-umaplicacaojava/25099#ixzz39gAPlv00/>. Acesso em: 10 mar. de 2014. 116 APÊNDICE Até o final deste trabalho a APROAN, uma das ONGs pesquisadas na etapa de levantamento de requisitos, havia encerrado suas atividades na cidade de Promissão, SP.