• Nenhum resultado encontrado

MODELAGEM E PROJETO DE UM SISTEMA DE GERENCIAMENTO PARA UMA ORGANIZAÇÃO DE PROTEÇÃO ANIMAL

N/A
N/A
Protected

Academic year: 2021

Share "MODELAGEM E PROJETO DE UM SISTEMA DE GERENCIAMENTO PARA UMA ORGANIZAÇÃO DE PROTEÇÃO ANIMAL"

Copied!
110
0
0

Texto

(1)

CENTRO DE ENSINO SUPERIOR DO SERIDÓ

DEPARTAMENTO DE COMPUTAÇÃO E TECNOLOGIA

BACHARELADO EM SISTEMAS DE INFORMAÇÃO

MODELAGEM E PROJETO DE UM SISTEMA DE

GERENCIAMENTO PARA UMA ORGANIZAÇÃO DE PROTEÇÃO

ANIMAL

ANA CAROLINA DE SOUSA FERREIRA

Caicó - RN

2019

(2)

ANA CAROLINA DE SOUSA FERREIRA

MODELAGEM E PROJETO DE UM SISTEMA DE

GERENCIAMENTO PARA UMA ORGANIZAÇÃO DE PROTEÇÃO

ANIMAL:

Trabalho de Conclusão de Curso II, apresentado ao Curso de Bacharelado em Sistemas de Informação da Universidade Federal do Rio Grande do Norte, como parte dos requisitos para obtenção do título de Bacharel em Sistemas de Informação.

Orientador(a): MSc. Taciano Morais da Silva. Co-orientador(a): MSc. Amarildo Jeiele Ferreira de Lucena.

Caicó - RN

2019

(3)

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Profa. Maria Lúcia da Costa Bezerra

– CERES – Caicó

Ferreira, Ana Carolina de Sousa.

Modelagem e Projeto de um Sistema de Gerenciamento para uma Orga-nização de Proteção Animal/ Ana Carolina de Sousa Ferreira. – Caicó - RN, 2019.

109f. : il. color.

Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Universidade Federal do Rio Grande do Norte. Centro de Ensino Superior do Seridó. Departamento de Computação e Tecnologia. Bacharelado em Sistemas de Informação.

Orientador: Prof. MSc. Taciano Morais da Silva.

Coorientador: Prof. MSc. Amarildo Jeiele Ferreira de Lucena.

1. Terceiro Setor. 2. Sistemas de Informação Gerencial (SIG). 3. Engenharia de Software. 4. Animais - Proteção. 5. Adoção de Animais. I. Silva, Taciano Morais da. II. Lucena, Amarildo Jeiele Ferreira de. III. Universidade Federal do Rio Grande do Norte. IV. Bacharelado em Sistemas de Informação. V.Modelagem e Projeto de um Sistema de Gerenciamento para uma Organização de Proteção Animal

(4)

Ana Carolina de Sousa Ferreira

Modelagem e Projeto de um Sistema de Gerenciamento

para uma Organização de Proteção Animal

Trabalho de Conclusão de Curso II, apresen-tado ao Curso de Bacharelado em Sistemas de Informação da Universidade Federal do Rio Grande do Norte, como parte dos requisitos para obtenção do título de Bacharel em Sistemas de Informação.

Caicó - RN, 11 de dezembro de 2019

MSc. Taciano Morais da Silva Orientador

MSc. Amarildo Jeiele Ferreira de Lucena Co-Orientador

Dr. Flavius da Luz e Gorgônio Examinador 1

Isabel Larissa Batista dos Santos Examinadora 2

Caicó - RN

2019

(5)

Eu agradeço primeiramente à Deus por todos os obstáculos ultrapassados até agora. A minha mãe, Maria Afra, que sempre me ajudou em todos os momentos até aqui, me passando ensinamentos que carregarei para sempre. A meu pai, Wilton, que sempre me apoiou e ajudou nessa árdua caminhada. A minha irmã, Ana Laura, que mesmo me perturbando sempre, ajuda sempre que preciso. Ao meu namorado, David, a quem eu sou muito grata por todos os momentos de descontração e gargalhadas. Eu sou muito grata por vocês, que nunca mediram esforços para me ajudar sempre que precisei. Amo vocês.

Aos meus colegas e amigos de faculdade Bismark, Juliana e Wesley que me acompa-nharam desde o início do curso e sem ajuda eu não conseguiria chegar até o final. Aos meus colegas de laboratório, que mesmo com todas as brincadeiras, sempre ajudavam como podiam. Amigos que lembrarei sempre.

Sou muito grata pelos meus orientadores Amarildo, Flavius e Taciano, por estarem me ajudando neste projeto e me repassando seus conhecimentos e por todas as brincadeiras de descontração. E a todos os professores que da Universidade Federal do Rio Grande do Norte pelos ensinamentos durante essa caminhada.

E finalmente, agradeço à Associação Caicoense de Apoio aos Animais (ACAPAM-Caicó) e ao Laboratório de Inteligência Computacional Aplicada a Negócios (LABICAN), por me proporcionar a realização deste trabalho.

(6)

RESUMO

As Organizações Sem Fins Lucrativos possuem como propósito ajudar a sociedade, sem visar lucro. Muitas instituições do terceiro setor brasileiro não têm o acesso à sistemas de gerencia-mento de informação que atendam suas atividades específicas e que estejam adequadas as suas realidades. Além disso, todo apoio financeiro recebido por elas são destinadas às atividades fins desta instituição, e sendo assim, as mesmas não possuem recursos para adquirir softwares pagos. Partindo dessa premissa, este trabalho propõe projetar um modelo para o desenvolvimento de um sistema Open Source de gerenciamento para empresas pertencentes ao terceiro setor brasileiro, com um foco na proteção de animais, proporcionando uma forma simplificada para as empresas gerenciarem suas atividades. O sistema foi modelado para ser utilizado nas plataformas mais populares atualmente, Web e Mobile. A aplicação Web possibilita a gestão dos processos de adoção de animais, o estoque de suprimentos, gestão financeira da instituição, doações, gerencia-mento de usuários, assim como propiciará a geração de relatórios gerenciais afim de mostrar os resultados obtidos pela organização. Já a aplicação Mobile contribui com a parte de divulgação e solicitação de adoção, fazendo com que essa aplicação tenha como principal foco os usuários fora da instituição. Para isso, foi desenvolvido um protótipo do software projetado durante este trabalho, o qual foi apresentado e aprovado pelo cliente. Acredita-se que o sistema atendeu à problemática apresentada e seus objetivos, assim como seus requisitos.

(7)

The Non-profit Organizations have as their purpose to help society without seeking profit. Many institutions in the Brazilian Third Sector don’t have access to information management systems who are adapted to their reality and attend their specific activities. Besides, all the financial support received by them are directed to the institution’s own activities, and so, they don’t have the resources to purchase a paid system. Based on this premise, this paper proposes to design a model for the development of an Open Source management system for companies belonging to the Brazilian Third Sector with a focus on animal protection, providing a simplified way to manage their activities. The system was modeled on the most widely used platforms today, Web and Mobile. The Web application enables the management of animal adoption, supply inventory, institution’s financial management, donations, user management, as well as providing maganement reports to show the results obtained by the company. On the other hand, the Mobile application contributes to the marketing and adoption request, making this application mainly focused on users outside the institution. However, a prototype of the software designed during this paper was developed, which was presented and approved by the client. It is consider that the system attended the presented problem and goals, as well as its requirements.

(8)

LISTA DE FIGURAS

Figura 1 – Scrum Adaptada . . . 24

Figura 2 – Gerenciamento de tarefas no Trello . . . 27

Figura 3 – Diagrama de Caso de Uso na ferramenta Draw.io. . . 28

Figura 4 – Módulos do Sistema . . . 34

Figura 5 – Diagrama Entidade Relacionamento . . . 35

Figura 6 – Diagrama de Caso de Uso . . . 36

Figura 7 – Visão Geral da Arquitetura . . . 37

Figura 8 – Caso de uso 1 - Login . . . 39

Figura 9 – Caso de uso 2 - Cadastrar animal . . . 40

Figura 10 – Caso de uso 3 - Cadastrar prontuário . . . 41

Figura 11 – Caso de uso 4 - Solicitar adoção . . . 42

Figura 12 – Caso de uso 5 - Alterar Permissão de Usuário . . . 43

Figura 13 – Arquitetura Geral do Projeto . . . 44

Figura 14 – Trecho do código do modelo de dados de animais . . . 45

Figura 15 – Detalhes da Camada de Aplicação . . . 46

Figura 16 – Exemplo das requisições em JSON . . . 47

Figura 17 – Exemplo do código da API . . . 48

Figura 18 – Detalhes da Camada de Apresentação. . . 49

Figura 19 – Tela de Login . . . 49

Figura 20 – Página Inicial . . . 50

Figura 21 – Listagem de Animais . . . 50

Figura 22 – Lista de Animais Aptos à Adoção . . . 51

(9)

Tabela 1 – Protocolos HTTP utilizados . . . 26

Tabela 2 – Mecanismos Arquiteturais. . . 38

Tabela 3 – Atividades Planejadas . . . 52

Tabela 4 – Cronograma Geral . . . 53

Tabela 5 – Fases do Projeto . . . 53

(10)

LISTA DE ABREVIATURAS E SIGLAS

ACAPAM Associação Caicoense de Proteção aos Animais e Meio Ambiente API Interface de Programação de Aplicações

BSI Bacharelado em Sistemas de Informação CSS Cascading Style Sheets

EAP Estrutura Analítica do Projeto ERP Enterprise Resource Planning ES Engenharia de Software

GPL GNU General Public License HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol

IBGE Instituto Brasileiro de Geografia e Estatística

LABICAN Laboratório de Inteligência Computacional Aplicado a Negócios MVC Model-View-Controller

ORM Object-relational Mapping ONG Organização não Governamental

PMBoK Project Management Body of Knowledge REST Representational State Transfer

SI Sistema de Informação

SIG Sistema de Informação Gerencial SCV Sistemas de Controle de Versões TAP Termo de Abertura do Projeto TEP Termo de Encerramento do Projeto TI Tecnologia da Informação

UFRN Universidade Federal do Rio Grande do Norte UML Linguagem de Modelagem Unificada

(11)

1 INTRODUÇÃO . . . . 12 1.1 Contextualização e Problema . . . 13 1.2 Objetivos . . . 14 1.2.1 Objetivo Geral . . . 14 1.2.2 Objetivos Específicos . . . 14 1.3 Delimitação do Estudo . . . 14 1.4 Justificativa . . . 15 1.5 Apresentação do Trabalho . . . 16 2 FUNDAMENTAÇÃO TEÓRICA . . . . 17 2.1 Terceiro Setor . . . 17

2.2 Sistemas de Informação Gerencial (SIGs) . . . 17

2.3 Engenharia de Software . . . 18

2.4 Gestão de Projetos . . . 19

2.5 Modelagem e Projeto de Sistemas de Informação . . . 21

2.6 Metodologia Ágil . . . 22

2.6.1 SCRUM . . . 23

2.7 REST API . . . 25

2.8 Ferramentas de Gerenciamento do Projeto . . . 26

2.8.1 Git e GitHub. . . 27 2.8.2 Trello . . . 27 2.8.3 Draw.io . . . 28 2.8.4 Ferramentas do Google . . . 28 2.9 Trabalhos Relacionados. . . 28 3 PROPOSTA DE SOLUÇÃO . . . . 31 3.1 Sistema Proposto. . . 31

3.2 Especificação dos Requisitos do Sistema. . . 31

3.2.1 Requisitos Funcionais . . . 32

3.2.2 Requisitos Não Funcionais . . . 33

3.3 Módulos . . . 33

3.4 Diagrama Entidade-Relacionamento . . . 34

3.5 Usuários do Sistema . . . 36

3.6 Arquitetura do Projeto . . . 37

3.6.1 Diagrama de Sequência. . . 38

(12)

3.6.1.2 Caso de uso 2 - Cadastrar animal . . . 39

3.6.1.3 Caso de uso 3 - Cadastrar prontuário . . . 39

3.6.1.4 Caso de uso 4 - Solicitar adoção . . . 40

3.6.1.5 Caso de uso 5 - Alterar Permissão . . . 40

4 PROPOSTA DE IMPLEMENTAÇÃO . . . . 44 4.1 Camada de Dados . . . 45 4.2 Camada de Aplicação . . . 45 4.3 Camada de Apresentação. . . 47 4.3.1 Capturas de tela . . . 48 5 RESULTADOS . . . . 52 5.1 Atividades Realizadas . . . 52 5.2 Gerenciamento . . . 52

5.3 Processo de Modelagem do Projeto . . . 54

5.4 O Sistema . . . 55

6 CONCLUSÃO . . . . 58

6.1 Discussão . . . 58

6.2 Trabalhos Futuros . . . 58

REFERÊNCIAS . . . . 60

APÊNDICE A – DIAGRAMA ENTIDADE RELACIONAMENTO . . . 65

APÊNDICE B – TERMO DE ABERTURA DO PROJETO . . . . 67

APÊNDICE C – DOCUMENTO DE VISÃO . . . . 72

APÊNDICE D – PLANO DE SOFTWARE . . . . 80

APÊNDICE E – PROJETO ARQUITETURAL . . . . 91

APÊNDICE F – CRONOGRAMA GERAL . . . 100

APÊNDICE G – TERMO DE ENCERRAMENTO PARCIAL DO PRO-JETO . . . 107

(13)

1 Introdução

No mundo contemporâneo, os Sistemas de Informações Gerenciais (SIGs) estão auxi-liando na gestão de praticamente todas as demandas das instituições (BAZZOTTI; GARCIA,

2006). Esses sistemas possuem um papel bastante importante dentro das empresas, sejam elas de pequeno, médio ou grande porte, pois propicia ao administrador obter informações sobre vários aspectos da organização.

Moraes (2005) destaca que a competitividade do cenário atual trás incertezas e im-previsibilidade aos administradores quanto ao futuro. E essas incertezas fazem com que eles busquem novas formas de obter informações sobre o ambiente organizacional com a finalidade de melhorar a eficácia de suas decisões. No entanto, paraSacilotti(2011), o sucesso de uma empresa, depende da capacidade de perceber, organizar e administrar as informações da mesma, aproveitando as ferramentas e recursos que a Tecnologia da Informação (TI) tem a oferecer.

Sendo assim, o que antes era feito manualmente, com caneta e papel, agora pode ser feito utilizando essas ferramentas e recursos que aTIpropicia. Com isso, muitas empresas foram aderindo a essas novas tecnologias e ficando cada vez mais dependentes desses sistemas, os quais foram se tornando cada vez mais complexos e dependendo de processos bem estruturados que auxiliassem no desenvolvimento desses sistemas.

Entretanto, quando foi iniciado a produção de software, não existia nenhum modelo que pudesse auxiliar no desenvolvimento dos mesmos. Então a Engenharia de Software (ES) foi uma solução encontrada para sanar esse problema, pois ela busca viabilizar métodos, técnicas e ferramentas para a construção de um software. Diante disso, aEStem como principal objetivo fornecer uma estrutura para a construção de software com alta qualidade (SBROCCO; MACEDO,

2012).

Partindo dessa premissa, de acordo com Brito e Pereira(1996), o que aES tem em comum com as outras engenharias é a busca pela qualidade, e com isso, ela vai garantir que o sistema em desenvolvimento irá se aproximar o máximo possível do que o cliente está solicitando.

Além disso, a partir dos métodos e técnicas de construção que aESproporciona, ela permite que o desenvolvimento do software seja dentro de custos, prazos e níveis de qualidade desejados.

Tendo em vista todos os benefícios da Engenharia de Software, convém aplicar seus con-ceitos com a finalidade de propor e projetar um modelo de software que ajude na administração e gestão de uma Organização não Governamental (ONG).

(14)

Capítulo 1. Introdução 13

1.1

Contextualização e Problema

No Brasil, o setor empresarial é dividido em três setores. As instituições ditas de primeiro setor são aquelas pertencentes ao governo, o setor público, ou seja, as prefeituras, ministérios e outras. Já o segundo setor é o privado, formado por instituições particulares, as mesmas realizam atividades em benefício próprio. E o terceiro setor são originárias de instituições privadas, porém são sem fins lucrativos, como por exemplo, as Organizações não Governamentais (ONGs), associações comunitárias, entidades filantrópicas, entre outras. Estas atuam em benefício da comunidade (BHBIT,2018).

Gerir uma instituição de terceiro setor é bastante complicado, visto que elas não dispõem dos mesmos recursos, sejam eles financeiros ou não, que as de primeiro e segundo setor possuem. Contudo, a aquisição de recursos para empresas que compõem o primeiro e o segundo setor é mais fácil se comparada com o terceiro setor que, muitas vezes, dependem de doações para manter funcionando (JUNIOR et al.,2009). Além da escassez de recursos, a falta de pessoal também é outro fator que dificulta a gestão dessas instituições.

Porém não são só a falta de pessoal e investimento as grandes dificuldades enfrentadas por essas instituições que compõem o terceiro setor, a dificuldade de acesso à ferramentas de auxílio a gestão é outro problema encontrado. Pois, muitas dessas instituições não sabem que existem softwares que podem ajudá-las na gerência ou até mesmo não sabem que existem essas ferramentas e que algumas delas são gratuitas, como o caso da ONGFácil (EKKOS,2007), do HYB (HYB,2019) e do ANY3 (ANY3,2019), que são softwares voltados para auxiliar na gestão de uma organização de terceiro setor, ajudando somente na parte financeira e contábil da empresa.

Embora os softwares citados no parágrafo anterior ajudem muito uma empresa de terceiro setor, eles são mais genéricos, ou seja, eles não possuem funções específicas, o qual muitas entidades necessitam ainda mais. Então, para suprir a necessidade, as instituições teriam que utilizar um outro sistema que auxiliasse durante esse processo. Como é o caso daONG

estudada durante o desenvolvimento deste trabalho, ela se trata de uma associação de proteção à animais, e segundo oIBGE(2016), já existem cerca de 1690 delas.

Tendo em vista esse problema de gestão dessas instituições pertencentes ao terceiro setor, o presente trabalho propõe projetar e modelar um Sistema de Informação Gerencial (SIG) que auxilie na administração total de umaONGde proteção aos animais.

(15)

1.2

Objetivos

1.2.1

Objetivo Geral

Desenvolver um projeto que proponha um modelo de software que auxilia na gestão de empresas voltadas ao terceiro setor, com um foco principal emONGs com trabalhos relacionados ao acolhimento de animais abandonados que será finalizado com a entrega do artefato de software.

1.2.2

Objetivos Específicos

a) Identificar as principais necessidades de uma empresa de terceiro setor voltada ao acolhi-mento de animais abandonados;

b) Identificar os principais usuários de um sistema voltado ao terceiro setor; c) Projetar um sistema de gestão para instituições de proteção à animais;

d) Propor uma arquitetura que atenda às necessidades de uma empresa de terceiro setor voltada ao acolhimento de animais abandonados;

e) Propor um cronograma de desenvolvimento do sistema; f) Desenvolver um protótipo do software;

g) Validar o protótipo junto ao cliente;

1.3

Delimitação do Estudo

Tendo em vista as constantes transformações do mercado atual, gerir uma empresa se tornou um desafio para os administradores. E para lidar com todas essas mudanças é necessário saber administrar equipes e conhecer cada área relevante para a sobrevivência da instituição.

Se para empresas tradicionais, a administração é algo complicado, quando se trata de uma organização sem fins lucrativos é algo mais complexo, pois a estrutura organizacional nem sempre é adequada, carece de recursos financeiros, materiais e de pessoal. Visto que os recursos dessas associações, quase sempre, provém de doações - muitas vezes, escassas - e o pessoal que ajuda é voluntário, ou seja, nem sempre possuem o tempo necessário para estar presente, esses fatores dificultam ainda mais na gestão dessas instituições (CAZZOLATO,2009).

Além disso, os métodos de gestão utilizados pela maioria dessas entidades sem fins lucrativos são ultrapassados, ou seja, eles usam caneta e papel ou no máximo alguma planilha eletrônica, o que não é mais uma boa prática para a segunda década do século XXI.

No entanto, com o aumento da necessidade de introduzir novas tecnologias que auxiliem na administração das empresas, vários modelos de sistemas foram criados visando facilitar a

(16)

Capítulo 1. Introdução 15

gestão dessas instituições, dentre eles estão o Enterprise Resource Planning (ERP) e oSIG. O

ERPauxilia em várias funções distintas, facilitando a gestão diária de todas as operações, já o

SIGrealiza apenas funções específicas, ele melhora a eficiência e precisão do fluxo operacional e financeiro, bem como auxilia na organização de processos (MAGISTECH,2017).

Embora não seja possível desenvolver um sistema que possa abranger todas as entidades sem fins lucrativos, porque cada uma possui necessidades específicas distintas, o presente trabalho observou apenas uma entidade, a de proteção à animais.

Diante disso, o presente trabalho realizou um estudo de caso na Associação Caicoense de Proteção aos Animais e Meio Ambiente (ACAPAM), entidade sediada no município de Caicó-RN, a qual se caracteriza como uma organização sem fins lucrativos cujo o foco é proteger os animais e seu principal objetivo é tirar esses animais das ruas, cuidar, alimentar e enviá-los à adoção.

Diante do cenário encontrado, durante o estudo de caso foi analisado as principais necessidades da instituição e, a partir daí, foi proposto umSIGbaseado nas dificuldades enfren-tadas, o mesmo sendo capaz de auxiliar durante os processos organizacionais, não só nas funções regulares da própria associação - como por exemplo, no financeiro e pessoal -, mas também facilitando o processo de adoção de animais.

1.4

Justificativa

As empresas sempre tiveram a necessidade de manter o controle de tudo, seja do setor financeiro, pessoal, produtivo, entre outros. Porém, era tudo feito manualmente, ou seja, era acumulado uma grande quantidade de papel, o que dificultava bastante quando alguém da empresa precisava de uma informação importante perdida em meio aos registros de algum setor (LEAL; NETO,2008).

Com o passar do tempo, as empresas vão adquirindo mais informações e com isso, a necessidade de automatizar a gestão dos dados obtidos em virtude da necessidade de acesso aos mesmos foi sendo cada vez mais essencial. Para isso foi criado osSIGs, eles proporcionam relatórios correntes da organização e com essas informações é possível monitorar, controlar e prever o futuro da empresa. Pois osSIGs resumem e relatam operações básicas da organização (LAUDON; LAUDON,2011).

Atualmente, o uso de umSIGé essencial para o funcionamento de uma organização (BAZZOTTI; GARCIA, 2006). Fazendo com que se torne tudo mais acessível, facilite na comunicação entre os setores de uma empresa, proporcionando informações que irão auxiliar na tomada de decisão.

Desta forma, este trabalho se justifica por buscar auxiliar na gestão de uma empresa de terceiro setor, visando simplificar os processos de umaONGde proteção e acolhimento de

(17)

animais abandonados. No entanto, o sistema a ser apresentado durante esse trabalho vem com um diferenciais que os sistemas que já estão no mercado não trazem, como o HYB, o ANY3 e o ONGFácil citados anteriormente, ele pretende oferecer o serviço de gestão empresarial e divulgação, além disso, ele será capaz de auxiliar na adoção dos animais, ou seja, permitirá ajudar em atividades específicas da instituição.

O sistema modelado e projetado durante esse trabalho foi implementado nas plataformas Webe Mobile. Ele é composto por funcionalidades deSIGna plataforma Web. Já a versão Mobile, é composta por funcionalidades que auxiliam na divulgação das necessidades da organização e de animais que estão disponíveis à adoção, onde o usuário poderá visualizar o perfil desses animais, solicitar adoção ou apadrinhamento.

1.5

Apresentação do Trabalho

O restante do trabalho segue a seguinte estrutura:

No capítulo2, irá conter a fundamentação teórica, o qual serão abordados os conceitos utilizados para fundamentar o trabalho, como por exemplo, uma breve descrição sobre o terceiro setor, Sistemas de Informação Gerencial, Engenharia de Software, Gestão de Projetos, Engenha-ria de Requisitos, Metodologia ágil e o Scrum, um pouco sobre o modelo de arquitetura utilizado, o REST API e as principais ferramentas que auxiliou durante o desenvolvimento do projeto, além disso, este capítulo mostra alguns trabalhos já realizados que aborda ao tema estudado.

No capítulo3, abordará a parte do modelo proposto e sua documentação, ou seja, irá mostrar os requisitos funcionais e não funcionais do sistema, o diagrama entidade-relacionamento, os usuários do sistema, descrevendo o que cada um pode realizar dentro do sistema. Logo após, será mostrado os módulos em que o sistema ficou dividido e depois, alguns casos de uso do sistema. Já no capítulo4, mostrará uma proposta para o desenvolvimento do sistema, descrevendo sua arquitetura e uma forma de implementação.

No Capítulo 5, irá mostrar como o projeto foi gerenciado, documentos realizados durante o processo de projetar o sistema, assim como será detalhado como foi realizado o processo de modelagem do sistema.

No capítulo 6, encontra-se as conclusões obtidas no final deste trabalho, ou seja, irá contextualizar os resultados e limitações obtidas durante a realização do trabalho, assim como propor sugestões de trabalhos futuros. Seguido das referências bibliográficas utilizadas durante este trabalho. Por fim, ao final do trabalho possui um apêndice, o qual contém os documentos produzidos pela autora durante a fase de desenvolvimento do projeto.

(18)

17

2 Fundamentação Teórica

2.1

Terceiro Setor

Nas últimas décadas, o chamado “Terceiro Setor Empresarial” vem ganhando cada vez mais visibilidade no Brasil e no exterior. SegundoSmith(1991), o termo “Terceiro Setor” nasceu nos Estados Unidos por volta da década de 1970 e tinha a finalidade de identificar aquelas instituições que não gerava renda ao estado. No Brasil, as mesmas só foram reconhecidas após o decreto de lei No9.790, DE 23 DE MARÇO DE 1999 (BRASIL,1999).

Apesar do terceiro setor ser bem amplo, cada entidade possui um foco e necessidades diferentes. De acordo com o Instituto Brasileiro de Geografia e Estatística (IBGE), as entidades sem fins lucrativos são classificadas por setores, sendo eles: Habitação; Saúde; Cultura e recrea-ção; Educação e pesquisa; Assistência Social; Religião; Associações patronais, profissionais e de produtores rurais; Meio ambiente e proteção animal; Desenvolvimento e defesa de direitos; e Outras instituições privadas sem fins lucrativos (IBGE,2016).

Entretanto, segundo (SILVEIRA et al.,2007), existe uma diferença entre as fundações e as associações. Ele afirma que as fundações têm uma função pública, enquanto que as associações possuem uma utilidade coletiva.

2.2

Sistemas de Informação Gerencial (SIGs)

Os Sistemas de Informação Gerencial (SIGs) são ferramentas que auxiliam as empre-sas no gerenciamento de suas informações. EssesSIGs auxiliam administradores, gestores e tomadores de decisão em sua rotina (PETRY,2007). Pois eles geram relatórios que contém o desempenho da empresa em qualquer momento, seja ele passado ou presente (LAUDON; LAUDON,2011), os quais são utilizados, geralmente, na hora de tomar alguma decisão.

SegundoDiniz(2018), seja qual for o ramo que a empresa atua, a globalização é um dos principais motivos os quais as instituições estão indo em busca de ferramentas que auxilie em seu desenvolvimento. Porque, nos dias de hoje, qualquer empresa que queira obter um diferencial no mercado, vai em busca de um sistema de informação estruturado, pois auxilia não só numa rápida e segura tomada de decisão, mas também fornece recursos que ajudam a solucionar problemas organizacionais internos e se preparar para encarar as mudanças do mercado. (BAZZOTTI; GARCIA,2006).

Contudo, o principal objetivo doSIGdentro de uma empresa, de qualquer ramo, é servir como base para o processo de planejamento, controle e tomada de decisões à nível organizacional

(19)

(CANAL,1999). Além disso, ele ajuda a alterar metas de desempenho, operações, serviços ou relacionamentos com o ambiente e propicia a organização a obter vantagem competitiva diante dos concorrentes (O’BRIEN,2004).

De acordo comStair e Reynolds(2012), conhecer o impacto causado por um Sistema de Informação (SI) e ter a capacidade de trabalhar com as informações geradas pelos mesmos, podem resultar não só no sucesso da carreira profissional do funcionário, mas também a ajudar à organização a alcançar seus objetivos.

Com base nisso, os usuários de umSIGse tornam capazes de realizar comparativos sobre períodos anteriores com os atuais, assim como ajuda no planejamento de uma empresa. No entanto, essas diversas opções que osSIGs disponibilizam auxiliam na prevenção de ações incorretas, além de fornecer suporte durante a tomada de decisões, assegurando a confiabilidade às mesmas (PETRY,2007).

2.3

Engenharia de Software

No mundo atual, o software é essencial para auxiliar empresas no mundo inteiro. Porém, para desenvolver esses softwares é necessário seguir algumas técnicas, métodos e utilizar ferramentas de auxílio. E é assim que trabalha a Engenharia de Software.

Embora muitos autores possuam visões diferentes quando se trata do conceito da engenharia de software. Naur(1968) citou em seu artigo sobre a conferência de 1968 queBauer et al.(1968apudNAUR,1968) definiu a Engenharia de Software como:

“Um estabelecimento e uso de sólidos princípios de engenharia a fim de obter um software que seja confiável e que funcione de forma econômica e eficiente em máquinas reais.” (BAUER et al.,1968apudNAUR,1968)

Com base na definição deBauer et al.(1968apudNAUR,1968), vários outros autores definiram seus próprios conceitos sobre aES, pois essa afirmação não diz muito sobre técnicas de qualidade, necessidade de satisfação do cliente, ou até mesmo sobre entregar o produto no prazo. Porém, ainda assim ela oferece uma base para que seja explicado o que é a Engenharia de Software.

No caso deSommerville(2007), ele sugeriu que aESé um ramo da engenharia que possui o foco no desenvolvimento dentro de custos adequados de sistemas de software de alta qualidade. JáPressman(2011) fez um acréscimo ao conceito de Bauer, ele acrescentou que aES

é uma abordagem sistemática e disciplinada para o desenvolvimento de software. A partir disto, é possível notar que, mesmo cada autor tendo a sua própria definição deES, eles continuam seguindo os mesmos princípios da engenharia tradicional, pois a mesma se baseia em que seu custo seja adequado para que o produto seja eficiente e não falhe.

(20)

Capítulo 2. Fundamentação Teórica 19

O ramo da Engenharia de Software é bastante amplo e a todo momento estão inventando novas técnicas, métodos e ferramentas de auxílio. Essa constante evolução se dá pelo aumento da complexidade dos softwares e a necessidade de manter a qualidade. Apesar de toda a luta pela qualidade, ela é muito difícil de se garantir, pois cada pessoa possui sua própria percepção sobre qualidade. Vai depender se o produto irá atender às necessidades que o cliente pediu ou não (BRITO; PEREIRA,1996).

Diante disso, é possível afirmar que a ES atua no planejamento, especificação de requisitos, desenvolvimento, testes e manutenção de um projeto de software. No entanto, a associação daESe a aplicação de ferramentas e das práticas de gestão de projetos fazem com que aumente a produtividade da equipe, mantenha a organização do projeto e a qualidade (FALBO,

2005). Na próxima seção será abordado mais sobre a gestão de projetos.

2.4

Gestão de Projetos

A Gestão de projetos é o conjunto de conhecimentos, habilidades, técnicas e ferramentas utilizadas para planejar, executar e monitorar um projeto (ARTIA,2018).

O gerenciamento de um projeto é tão importante quanto o desenvolvimento (HIRAMA,

2012). Pois uma boa gerência serve para que o projeto seja concluído com sucesso, ou seja, no final do projeto, ele deve atender a todos os requisitos planejados durante a etapa de especificação de requisitos, além de estar dentro do tempo e custos previstos anteriormente.

Vargas (2005) destaca que a grande vantagem da gestão de projetos é que ela não se restringe a projetos grandes, complexos e de alto custo, ela deve ser aplicada em qualquer projeto, pois quando se faz uma boa organização, é possível antecipar situações desfavoráveis, faz com que seja feito um orçamento prévio dos gastos, ajuda na tomada de decisão durante o desenvolvimento do projeto, aumenta o controle gerencial em todas as fases, além de facilitar e documentar estimativas para projetos futuros. O mesmo autor ainda aponta alguns benefícios de um bom gerenciamento de projetos, são eles:

• antecipa as situações desfavoráveis que poderão ser encontradas, para que ações de prevenção e correção possam ser tomadas antes que essas situações se tornem um problema de fato;

• disponibiliza os orçamentos antes do início dos gastos;

• agiliza as decisões, já que as informações estão estruturadas e disponibilizadas;

• aumenta o controle gerencial de todas as fases a serem implementadas devido ao detalha-mento ter sido realizado;

(21)

• facilita e orienta as revisões da estrutura do projeto que forem decorrentes de modificações no mercado ou no ambiente competitivo, melhorando a capacidade de adaptação do projeto;

• documenta e facilita as estimativas para futuros projetos.

No entanto, ter tudo documentado é uma vantagem, pois propicia uma maior organização durante o desenvolvimento de um sistema, facilitando modificações e futuras manutenções no mesmo (FALBO,2005).

Dentro da gestão de projetos existe o guia Project Management Body of Knowledge (PMBoK), ele fornece boas práticas para se ter um gerenciamento de qualidade durante o desenvolvimento de qualquer projeto. Embora ele forneça vários processos, ferramentas e técnicas não é necessário utilizar tudo o que está disponível no guia (MEDEIROS,2013).

Dentre essas boas práticas de gestão providas peloPMBoK, cabe ao gestor do projeto decidir o que é mais válido para o que está sendo desenvolvido. Alguns documentos exemplos são expostos na 5a Edição do GuiaPMBoK(PMI; PMI,2017), são eles:

1. Termo de Abertura do Projeto (TAP): é um documento que autoriza formalmente o início do projeto, ele é feito na fase de iniciação. Nele, contém informações com detalhamento suficiente para que o projeto seja aprovado, ou seja, ele vai conter informações sobre o objetivo e justificativa do projeto, o cronograma com os principais marcos, lista de pessoas interessadas no projeto, os principais requisitos do sistema, restrições e riscos do projeto, assim como seu custo para o desenvolvimento.

2. Plano de Gerenciamento de Riscos: neste documento está contido todos os riscos previstos no início do projeto, assim como sua possível solução.

3. Plano de Gerenciamento de Custos: este documento consta todos os possíveis gastos que ocorrerá durante o desenvolvimento do projeto.

4. Plano de Gerenciamento de Qualidade: este documento vai garantir que o projeto seja desenvolvido dentro das políticas de qualidade, ou seja, tudo o que foi solicitado pelo cliente esteja funcionando perfeitamente.

5. Plano Cronograma: este documento é o que as pessoas interessadas mais desejarão ver, pois é nele que estará descrito todas as fases do projeto, o andamento das tarefas e seus detalhes, assim como seus prazos.

6. Estrutura Analítica do Projeto (EAP): é um diagrama em estrutura de árvore que mostra uma subdivisão necessária para conseguir um objetivo.

(22)

Capítulo 2. Fundamentação Teórica 21

7. Termo de Encerramento do Projeto (TEP): é um documento que autoriza formalmente o fim do projeto. Nele, contém informações sobre os requisitos que foram implementados, o porquê de ter terminado o projeto, entre outras informações.

Os documentos citados são fundamentais para uma boa organização e controle do projeto, eles são feitos com base nos requisitos e restrições do cliente.

2.5

Modelagem e Projeto de Sistemas de Informação

Para construir uma casa, é preciso arquitetá-la por completo antes de construí-la. Se-guindo esse ponto de vista, para construir um sistema a etapa de modelagem é uma das partes mais importantes também, pois é por meio dela que é possível compreender melhor o sistema (SOMMERVILLE,2007). Além disso, ela ajuda a visualizar como o sistema é ou se está como deseja; proporciona um guia para o desenvolvimento; entre outros benefícios que a modelagem traz.

Os requisitos podem ser expressos de várias formas, desde um texto não estruturado à expressões em uma linguagem formal. A maioria dos requisitos funcionais de um sistema podem ser expressados como caso de uso, e os diagramas de casos de uso da UML são essenciais para o gerenciamento desses requisitos (BOOCH et al.,2012).

Ainda segundoBooch et al.(2012), a Linguagem de Modelagem Unificada (UML) é uma linguagem gráfica para a elaboração da estrutura de projetos de software. Ela poderá ser empregada para a visualização, especificação, construção e a documentação de artefatos que façam o uso de sistemas de software.

Os diagramasUMLauxiliam durante a especificação das funcionalidades, estrutura e comportamento do sistema, dentre eles estão:

1. Diagrama de Classes: é um diagrama estrutural que mostra um conjunto de classes, interfaces, colaborações e seus relacionamentos.

2. Diagrama de Pacotes: é um diagrama que mostra os módulos e subsistemas de um sistema. Seu principal objetivo é agrupar os elementos de um sistema ou parte dele. 3. Diagrama de Casos de Uso: é um diagrama comportamental que mostra um conjunto de

casos de uso, atores e seus relacionamentos.

4. Diagrama de Sequências: é um diagrama comportamental que mostra uma interação, dando ênfase à ordenação temporal das mensagens.

5. Diagrama de Objetos: mostra o estado dos objetos dentro de um sistema, levando em conta para isto um intervalo de tempo específico.

(23)

6. Diagrama de Comunicação: mostra a interação entre um conjunto de objetos através da troca de mensagens.

7. Diagrama de Tempo: mostra os tempos reais em que as mensagens são trocadas.

8. Diagrama de Atividades: mostra as tarefas realizadas na execução de uma atividade, sendo utilizado geralmente na representação de processos dentro da empresa.

9. Diagrama de Estado: detalha os diferentes estados pelos quais pode passar um objeto, tomando por base a execução de um processo dentro do sistema que se está considerando. 10. Diagrama de Componentes: mostra os diferentes componentes de um sistema, além de

possíveis dependências entre tais elementos. Pode se referir a uma parte, ou até mesmo um módulo de uma aplicação.

11. Diagrama de Depuração: mostra os componentes de hardware e software e sua interação com outros elementos de suporte ao processamento e auxilia durante a implantação do sistema.

12. Diagrama de Estrutura Composta: mostra a estrutura interna de um elemento (classe, componente ou caso de uso), incluindo seus pontos de interação com outras partes do sistema.

13. Diagrama de Visão Geral da Interação: é uma junção do diagrama de sequência com o de atividades, e mostra exatamente o que o usuário deve realizar ao utilizar o sistema.

A partir desses diagramas é possível compreender o funcionamento e visualizar o sistema de uma forma mais ampla, além de poder identificar alguns riscos que não foram previstos anteriormente.

2.6

Metodologia Ágil

Tendo em vista que esse projeto irá ser adotado bastante práticas de ESe gestão de software, então é importante ser definido um metodologia a ser empregada durante o projeto. Uma metodologia de desenvolvimento se caracteriza pelo conjunto de práticas recomendadas para o desenvolvimento de software. Essas práticas podem ser subdivididas em fases para ordenar e gerenciar o processo (SOMMERVILLE,2007). De acordo comHirama(2012), a escolha de um processo de software é importante porque indica para a equipe do projeto uma diretriz do que deve ser feito para que os objetivos sejam alcançados, ou seja, determina quais atividades devem ser realizadas para que o produto seja desenvolvido.

Embora existam vários processos de softwares que funcionam de maneiras diferentes, todos eles possuem a fase de especificação, implementação, validação e evolução. Então, durante

(24)

Capítulo 2. Fundamentação Teórica 23

a etapa de especificação do software é definido suas funcionalidades e suas restrições, ou seja, deve-se compreender qual o objetivo do projeto. Na etapa de implementação, um software que atenda às especificações descritas na etapa de especificação deve ser desenvolvido. Na validação, o software deve ser validado para que seja exatamente o que o cliente pediu. E na evolução, o softwaredeve ser realizado algumas alterações para que atenda as necessidades mutáveis do cliente (SOMMERVILLE,2007).

Existem vários tipos de modelos de processos tradicionais, são eles: o modelo cascata, espiral, V, prototipação, entre outros. Porém, com a introdução de novas tecnologias e novos sistemas com um grau mais elevado de complexidade além da incansável busca pela qualidade do software, novos modelos de processos foram criados com a finalidade de sanar esses novos problemas.

E para isso, em 2001 foi criado o Manifesto Ágil, onde desenvolvedores propuseram novos métodos ágeis com a finalidade de que a equipe focasse somente no software a ser produzido em vez de ainda ter que se preocupar com documentação. ConformeSommerville

(2007), esses métodos contam com uma abordagem iterativa para especificação, desenvolvimento e entrega. Sendo assim, eles permitem que a entrega do software seja mais rápido, permite que o cliente realize modificações, proponham novos requisitos a serem incluídos nas próximas iterações além de poder realizar entregas de versões para que o cliente fique por dentro do progresso do projeto.

Diante de todos esses novos métodos que foram desenvolvidos, um dos que se tornou mais populares e conhecidos durante os últimos anos foi o Scrum (MAHNIC; DRNOVSCEK,

2005). Contudo, essa metodologia vem sendo implementada cada vez mais nas grandes empresas não só no Brasil, mas também no resto do mundo (SCHERER,2017). Outra vantagem é que o Scrum permite que a equipe seja pequena. Portanto, essa será a metodologia de desenvolvimento a ser seguida durante o projeto.

2.6.1

SCRUM

O Scrum consiste numa metodologia ágil que ajuda no planejamento e gestão de projetos, geralmente é utilizado no desenvolvimento de software. Essa metodologia se adapta à pequenos times e a projetos dinâmicos e mutáveis (BARROS et al.,2009). Uma das vantagens do Scrum é que ele foi criada para que projetos de software pudessem ser entregues em versões parciais, com apenas algumas funcionalidades sendo executadas, tendo em vista o que é mais urgente para o cliente e o produto (ALVES,2013).

Dentro da metodologia Scrum, cada integrante possui suas responsabilidades. Essas pessoas são classificadas como o Product Owner, que é responsável por maximizar o valor do produto resultante do trabalho da equipe de desenvolvimento; o Scrum Team, são os que compõem a equipe desenvolvedora; e o Scrum Master, ele é responsável por promover e apoiar o

(25)

Scrum, conforme definido no Guia do Scrum. Os Scrum Masters devem ajudar todos a entender a teoria, práticas, regras e valores do Scrum, ou seja, ele é o líder do time (SCRUMGUIDES.ORG,

2017).

O Scrum se caracteriza por dividir suas tarefas em ciclos, que foi denominado de Sprint pelos seus criadores. Dentro de cada Sprint, deve ser realizado um Daily Scrum, ou seja, uma reunião diária de, em média, 15 minutos para que seja possível acompanhar o andamento das atividades. Nessa reunião, cada membro deve responder 3 (três) perguntas, “o que você fez ontem?”, “o que você vai fazer hoje?”, “tem algum impedimento para completar as tarefas ou alguma dúvida?”.

Porém, esse projeto possui a característica principal como sendo um software acadêmico, ou seja, todas as partes dele será feito por alunos da graduação. Então, foi pensado em adaptar o Scrum de forma a se adequar ainda mais a essa realidade, pois nem todos terão a disponibilidade de realizar tarefas diárias.

A proposta seria trocar o Daily Scrum por o que é possível chamar de Week Scrum, ou seja, fazer uma reunião por semana com a mesma finalidade do Daily Scrum, porém mantendo a essência do Scrum, como mostra a Figura1.

Figura 1 – Scrum Adaptada

Fonte: Google (Adaptada), 2019

De acordo com a Figura1, o primeiro passo é a coleta de requisitos. Nessa etapa é feita uma lista com tudo que é desejado pelo cliente, o qual é chamado de Product Backlog pelo Scrum, essa lista não necessariamente precisa estar completa, pois ela vai crescendo de acordo com o aprendizado adquirido durante o contato com o produto e os usuários. Quem vai construindo essa lista é o Product Owner, ele exerce basicamente o papel de gerente do projeto, ele faz a lista de requisitos e os prioriza durante as reuniões para que as funcionalidades que possuírem prioridades fiquem prontos mais rápido.

(26)

Capítulo 2. Fundamentação Teórica 25

Sprint. E para isso, é necessário uma reunião conhecida como a Scrum Planning Meeting na qual é necessário que todos os integrantes e interessados no projeto estejam presentes para que eles saibam o que irão ser feitos durante o próximo ciclo e dizer se será possível realizar aquela tarefa durante o tempo da Sprint ou não.

Ao final de cada Sprint, é feito uma Scrum Retrospective com a finalidade de identificar o que funcionou bem, o que pode ser melhorado e quais ações serão tomadas para melhorar. Além disso, é realizado também uma Sprint Review Meeting e é nessa reunião que o Scrum Team mostra o que foi realizado durante a Sprint. Nela, eles vão apresentar as funcionalidades que conseguiram implementar aos outros integrantes do projeto (NETO; TAVARES,2014).

E, por fim, a equipe possui uma versão ou o software rodando. Uma das vantagens do Scrum é que torna-se possível a entrega do projeto em versões para que o cliente teste e veja se está sendo o que ele realmente quer antes do fim do projeto. No entanto, todo o ciclo, desde a coleta de requisitos, pode ser repetido várias vezes durante um só projeto.

Para se ter um projeto mais organizado, o Scrum disponibiliza artefatos. Eles irão ajudar a manter o software documentado e organizado. A seguir, é possível ver como esses artefatos atuam dentro do Scrum.

2.7

REST API

Existem vários modelos de arquitetura para criar uma Interface de Programação de Aplicações (API), porém o presente trabalho irá se basear no modelo Representational State Transfer(REST), o qual consiste num estilo de arquitetura para sistemas de hipermídia distri-buídos (FIELDING,2000). E como todo estilo arquitetônico, aRESTtambém possui seus 6 princípios e restrições que devem ser seguidos para poder dizer que ela é realmenteREST, são eles:

• Cliente-Servidor: faz com que o cliente e o servidor sejam capaz de se modificar sem depender um do outro, pois o cliente só deve depender das URIs1(TUTORIAL,2017). • Sem estado: todas as interações entre cliente e servidor são sem estado, ou seja, o servidor

não armazena nada sobre a última solicitação realizada, no entanto, a cada nova requisição feita, o servidor trata como uma nova.

• Armazenável em cache: os dados devem ser implicitamente ou explicitamente rotulados como armazenáveis em cache, isso pode ser realizado em qualquer lado, seja do cliente ou servidor (FIELDING,2000).

1 URI é uma cadeia de caracteres compacta usada para identificar ou denominar um recurso na Internet. Ou seja, é

(27)

• Interface uniforme: o sistema deve conter apenas um URI1lógico e isso deve fornecer

uma maneira de buscar dados relacionados ou adicionais (TUTORIAL,2017).

• Sistema em camadas: permite usar uma arquitetura de sistema em camada, como por exemplo, é possível implementar a APIno servidor 1, armazenar os dados no servidor 2 e autenticar solicitações no servidor 3 e o cliente não pode dizer a qual servidor está conectando (TUTORIAL,2017).

• Código sob demana (opcional): permite que a funcionalidade do cliente seja estendida baixando e executando o código na forma de applets2ou scripts3. Isso simplifica para o

cliente, reduzindo o número de recursos necessários para a pré-implementação. Permitindo o download de recursos após a implantação melhora a extensibilidade do sistema. No entanto, também reduz a visibilidade e, portanto, é apenas uma restrição opcional noREST

(FIELDING,2000).

Essa arquitetura foi criada para ser uma evolução do protocolo Hypertext Transfer Protocol(HTTP), e ela é fortemente baseada nos métodos deste protocolo, ou seja, ela utiliza o GET, POST, PUT, DELETE para realizar as requisições (LECHETA,2015), como são os citados na Tabela1.

Tabela 1 – Protocolos HTTP utilizados

GET Obter os dados de um recurso. POST Criar um novo recurso.

PUT Substituir os dados de um determinado recurso. DELETE Excluir um determinado recurso.

Fonte: (FERREIRA,2017)

Conhecer e fazer o uso desses métodos de forma correta não é um princípio, mas uma boa prática. Além disso, obedecer aos princípios e restrições do modelo garante a portabilidade, escalabilidade e desacoplamento da aplicação.

2.8

Ferramentas de Gerenciamento do Projeto

As ferramentas são uma parte essencial dentro de qualquer projeto, principalmente quando se trata de desenvolvimento de software, pois elas são fundamentais para auxiliar na execução das tarefas.

As ferramentas a serem utilizadas durante este trabalho serão o GitHub, Trello, Draw.io e as ferramentas do Google, os quais serão detalhados a seguir.

2 é uma aplicação muito pequena, especialmente um programa que executa uma ou algumas funções simples 3 conjunto de instruções que são necessárias para a execução de uma função

(28)

Capítulo 2. Fundamentação Teórica 27

2.8.1

Git e GitHub

O Git é um Sistemas de Controle de Versões (SCV), ou seja, ele é capaz de gravar informações sobre mudanças de um arquivo ou de um conjunto de arquivos ao longo do tempo para que você possa recuperar versões específicas posteriormente (CHACON; STRAUB,2014). O Git é um dosSCVmais utilizado hoje em dia, ele consiste num sistema distribuído para a gestão eficiente de fluxos de trabalho. E ele pode ser trabalhado junto ao GitHub auxiliando no gerenciamento de versões do software em desenvolvimento.

O GitHub é uma plataforma de repositórios que utiliza o Git e permite o controle de versões. Nele, programadores de qualquer lugar do mundo podem contribuir em projetos, sejam eles privados ou de código aberto (GITHUB,2007).

O GitHub permite que o usuário possa criar repositórios vazios ou clonar de outro repositório que esteja hospedado no GitHub, podendo atuar também como repositórios remotos (LOPEZ-PELLICER et al.,2015).

2.8.2

Trello

O Trello é um quadro de tarefas o qual é possível gerenciar projetos de forma organizada. É uma ferramenta gratuita, é possível adicionar quantos membros quiser aos seus quadros, entre outras (TRELLO,2014).

A partir dessa ferramenta é possível ter uma visão geral do que está sendo feito, o que já foi realizado e o que está para fazer. Ela é essencial para o controle das tarefas do projeto e saber quem faz suas obrigações ou não. Na Figura2é possível observar como estão organizadas as tarefas do projeto.

Figura 2 – Gerenciamento de tarefas no Trello

(29)

2.8.3

Draw.io

O Draw.io é uma plataforma de código aberto onde é possível criar diagramas de forma fácil (DRAW.IO,2017). Nele, é possível criar diagramas de projetos de software, mapas mentais, circuitos entre outros diagramas. Na Figura3, é possível ver o uso da ferramenta.

Figura 3 – Diagrama de Caso de Uso na ferramenta Draw.io

Fonte: A própria autora

2.8.4

Ferramentas do Google

As ferramentas que a plataforma Google LLC fornece são muito úteis, pois é possível utilizá-las em qualquer lugar. As ferramentas utilizadas foram o Google Drive, usado para compartilhamento de documentos, os quais foram feitos utilizando o Google Documentos. Também foi utilizado o Google Planilhas para fazer cronogramas e planejamentos. Além disso, também foi utilizado o Gmail como ferramenta de comunicação e troca de informações.

2.9

Trabalhos Relacionados

Jesus et al. (2016) propõem um portal para aONG com a finalidade de divulgar a instituição e fazer com que as pessoas se conscientizem sobre a adoção, interação e como um método de troca de informações entre a instituição e os usuários.

Medeiros et al.(2018) propõem um aplicativo capaz de lê informações de um microchip já implantado nos animais com a finalidade de identificar cada animal e obter suas informa-ções. Sugere também utilizar o próprio hardware do celular para não ter que comprar novos equipamentos para ler esses microchips e, assim, diminuir o custo.

JáSilva(2017) propõe somente um aplicativo para a plataforma Android que facilita a comunicação entre as instituições de apoio aos animais e as pessoas interessadas em adotá-los. Essa aplicação irá fornecer um catálogo de animais que estão aptos à adoção, além de fornecer

(30)

Capítulo 2. Fundamentação Teórica 29

meios de que pessoas que não possam adotar e levar para casa, possam ajudar possuindo a opção de doação voluntária.

E Abdullahi et al.(2014) sugerem desenvolver uma aplicação Web de controle de adoção e recolhimento de animais, tornando o processo de gerenciamento de adoção mais ágil e eficiente. Eles propõem um sistema de gerenciamento de adoção de animais, na qual possui um catálogo de animais, onde os usuários cidadãos podem visualizar os animais e solicitar adoção. E os administradores poderão realizar o cadastro de animais, gerar relatórios e formulários, gerenciar as adoções e verificar potenciais adotantes.

Hoje existem alguns softwares para empresas sem fins lucrativos já no mercado, porém eles não visam os principais problemas dasONGs específicas, elas auxiliam basicamente na gestão das mesmas.

O Instituto Ekkos desenvolveu o software ONGFácil que consiste num sistema de gestão online que busca promover uma gestão simples e automatizada para organizações, empresas, institutos e fundações (EKKOS,2007). Esse software possui módulos mais voltado para o setor financeiro e pessoal da empresa, o que não seria tão adequado para uma empresa que busca, além de tudo isso, manter o controle e adoção de animais.

Outro software que foi desenvolvido para empresas do terceiro setor é o Sistema Especialista para Gestão de Empresas do Terceiro Setor, mais conhecido por ANY3 (ANY3,

2019), desenvolvido pela FP2 Tecnologia, empresa de Santa Maria – RS. Ele é um sistema completo que permite o registro contábil de toda a movimentação financeira/contábil de empresas do Terceiro Setor, seja ela uma Fundação, Associação, Instituto,ONGs, Instituto, Igreja, entre outros. Através dele é possível acompanhar os recursos financeiros/contábeis de projetos, sejam eles fomentados com recursos públicos ou privados. Esse sistema é divido em 04 (quatro) módulos: Sistema Financeiro/Contábil, Portal do Coordenador, Portal do Cliente e Portal Transparência (PRASS,2011).

Além desses, existe o HYB e ele consiste num software voltado para a gestão de entidades sem fins lucrativos. Esse sistema é 100% online e possui integração contábil para

ONGs, associações, fundações, institutos, igrejas, entre outros. O HYB auxilia no crescimento da instituição, organizando todas as informações em um só lugar, melhora o relacionamento com os doadores, pois ele possui uma ferramenta que automatiza a comunicação, aumenta o engajamento e facilita o recebimento das doações. Além disso, ele permite um controle financeiro e de projetos completo (HYB,2019).

Outro software que já está atuando no mercado é o Economato. Ele oferece soluções em tecnologia para o terceiro setor e igrejas. Possui uma maior transparência e facilidade para as entidades, possibilitando uma fácil gestão (BHBIT,2019).

Entretanto, todos eles se tratam de softwares mais genéricos e que só lidam com a gestão financeira e pessoal de uma empresa, sem se preocupar com a parte que ela trata. Diante desse

(31)

cenário, o presente projeto visa não somente englobar toda essa parte de gestão e financeira, mas também se preocupar em fornecer recursos para que seja possível lidar com a parte mais específica de umaONGpara animais. Ou seja, o sistema auxiliará também no gerenciamento dos próprios animais, tornando o acesso às informações de cada animal mais fácil, além de facilitar no processo de adoção, o qual também será uma funcionalidade do sistema.

(32)

31

3 Proposta de Solução

3.1

Sistema Proposto

A Associação Caicoense de Proteção a Animais (ACAPAM) é uma instituição de proteção à animais localizada no município de Caicó/RN e possui como principal atividade abrigar animais abandonados, cuidá-los e enviá-los para a adoção.

AACAPAMsurgiu em 2014 de forma provisória e foi fundada por um grupo de amigos cansados de ver animais abandonados passando necessidades pelas ruas da cidade de Caicó. Algumas dessas pessoas fundadoras já cuidavam de animais abandonados em suas casas, daí decidiram se reunir e formalizar aONG. O principal foco dessa associação é proteger os animais e seu objetivo é tirar esses animais das ruas, cuidar, alimentar e enviá-los à adoção.

A região conta com somente aACAPAMcomo instituição de acolhimento de animais desde 2014 e antes disso não existia esse tipo de organização pela região. Então, após a fundação da instituição, muita gente deixa esses animais aos cuidados deles ou até mesmo abandona dentro daONG. Contudo, com o aumento exponencial de animais que foram chegando, a instituição necessita de algo que possa auxiliá-los não somente no processo de adoção, mas também durante os cuidados dos próprios animais que estão ali dentro e no dia a dia da organização.

Para isso, foi realizado um estudo de caso junto com a ACAPAM e, a partir das necessidades observadas foi modelado e projetado um sistema de gestão para auxiliar a instituição durante os processos ocorridos diariamente.

3.2

Especificação dos Requisitos do Sistema

Os requisitos são descrições das funcionalidades do sistema, os serviços que devem ser oferecidos e quais as restrições do seu funcionamento. Esses requisitos representam o que o cliente deseja realizar com o auxílio do sistema. Esse processo de descobrir, analisar, documentar e verificar esses serviços e restrições é chamado de Engenharia de Requisitos (SOMMERVILLE,

2011).

Os requisitos seguidos durante este trabalho foram sugeridos com base nas necessidades daACAPAM. Ela necessita de um sistema de gestão e um meio de divulgação para que o índice de adoção aumente cada vez mais. Durante o estudo de caso, foi verificado alguns requisitos importantes para a empresa e eles serão descritos nos próximos tópicos.

(33)

3.2.1

Requisitos Funcionais

Os requisitos funcionais são as funcionalidades que o sistema deve fornecer, como reagir e se comportar em determinadas situações. Os requisitos funcionais do sistema atual se constitui em:

RF01 - Cadastro e gerenciamento dos funcionários e voluntários RF02 - Cadastro e gerenciamento dos animais

RF03 - Cadastro e gerenciamento dos estoques de comida e remédios RF04 - Cadastro e gerenciamento de materiais de limpeza

RF05 - Cadastro e gerenciamento de usuários do sistema

RF06 - Cadastro e gerenciamento de prontuário, permitindo que somente o usuário colaborador veterinário possa realizar esse processo

RF07 - Cadastro e gerenciamento animais aptos para adoção RF08 - Documentação de contrato de funcionários e voluntários RF09 - Registro de horário dos funcionários e voluntários RF10 - Registros de entrada e saída de animais

RF11 - O sistema deverá fornecer documentos de adoção e apadrinhamento de animais RF12 - O sistema deverá gerar um rodízio de voluntários e fornecer um horário de acordo com a disponibilidade de cada funcionário

RF13 - Somente o usuário Funcionário ACAPAM poderá gerar relatórios

RF14 - Realizar uma estimativa de quantos dias a quantidade de comida que está no estoque irá durar

RF15 - Controle de entregas dos equipamentos de proteção individual RF16 - Enviar agradecimento pela doação por e-mail

RF17 - Emitir histórico de Doações

RF18 - Informar quem deu o remédio ao animal e qual remédio

RF19 - Permitir compartilhamento para redes sociais das necessidades da instituição e animais aptos à adoção

RF20 - A aplicação deverá permitir que os usuários selecionem animais com interesse em adotar

RF21 - A aplicação deverá permitir que os usuários visualizem os animais selecionados anteriormente por eles

(34)

Capítulo 3. Proposta de Solução 33

RF23 - A saúde do animal poderá ser acompanhada pelos usuários RF24 - A aplicação poderá enviar notificações para os usuários

RF25 - O usuário poderá filtrar apenas animais com as características desejadas RF26 - A aplicação deverá informar o horário de funcionamento da instituição RF27 - O usuário poderá solicitar o pedido de adoção pelo próprio aplicativo RF28 - O usuário deverá realizar o pré-cadastro para adotar o animal

3.2.2

Requisitos Não Funcionais

Os requisitos não funcionais são as restrições sobre os serviços ou as funções oferecidas pelo sistema. Os requisitos não funcionais do sistema atual se constitui em:

RNF01 - A aplicação irá rodar em dispositivos móveis

RNF02 - A aplicação deverá ser capaz de funcionar a partir da versão 4.0 do sistema operacional Android

RNF03 - Os animais cadastrados deverão possuir pelo menos foto, tipo e identificador RNF04 - O sistema deverá rodar em Web, sendo compatível com o Mozilla, Chrome e Opera

RNF05 - A comunicação entre a aplicação, o sistema Web e o servidor será feito por meio de uma Web Service

RNF06 - O sistema deve limitar o acesso do usuário conforme o cargo.

3.3

Módulos

Durante a análise de requisitos deste trabalho, foi necessário dividir o sistema em módulos, onde cada módulo fica responsável por auxiliar a uma área da organização. Para simplificar, a Figura4mostra como o sistema foi agrupado dentre suas funcionalidades. Para isso, foi utilizado o diagrama de componentes, pois ele mostra a organização e as dependências existentes entre um conjunto de componentes. (BOOCH et al.,2012).

No módulo usuário, o usuário é capaz de gerenciar usuários, contratar e demitir voluntários, gerenciar horários de colaboradores e voluntários, além de alterar o nível de acesso de cada usuário.

No módulo animal, o usuário é capaz de realizar o cadastro e gerenciamento dos animais, assim como gerenciar o seu prontuário, dizer se o animal está disponível à adoção, verificar solicitações de adoções e realizar adoções.

(35)

Figura 4 – Módulos do Sistema

Fonte: Autoria Própria

alimentos e materiais de limpeza da instituição. Além disso, esse módulo realiza o controle de doações desses itens e a estimativa de até quando a quantidade presente no estoque dará para sustentar a instituição.

No módulo financeiro, o usuário é capaz de realizar toda a parte financeira da insti-tuição, ou seja, prestação de contas, contabilidade, geração de boletos, lançamentos bancários, controle de pagamentos, controle de doações, contas a pagar, contas a receber, patrimônio da instituição entre outros.

No módulo de documentos, o usuário é capaz de disponibilizar e baixar qualquer documento do sistema, desde a documentação de adoção e apadrinhamento, contratação de voluntários, relatórios gerais do financeiro, assim como relação de doações e doadores, relação de animais da instituição, entre outros que irá ser discutido com base a instituição for achando necessário.

3.4

Diagrama Entidade-Relacionamento

O diagrama entidade relacionamento é utilizado para descrever os objetos (entidades) envolvidos num modelo de negócio junto com suas características (atributos) e seu

(36)

relacio-Capítulo 3. Proposta de Solução 35

namento entre si (BOOCH et al., 2012). Tendo em vista que o sistema de banco de dados utilizado durante o desenvolvimento daAPIconsiste num banco relacional - o MySQL -, foi necessário desenvolver o diagrama para auxiliar o projetista de banco de dados. Então, a partir do diagrama entidade-relacionamento exposto na Figura5, é possível identificar cada atributo e seus relacionamentos, fazendo com que fique claro sobre cada atributo e as relações entre si, o diagrama completo está no ApêndiceA.

Figura 5 – Diagrama Entidade Relacionamento

Fonte: Autoria Própria

Ao observar a Figura 5, é possível notar que a complexidade do sistema é alta, por abranger muitos objetos com seus relacionamentos.

(37)

3.5

Usuários do Sistema

ParaBooch et al.(2000), todo sistema interage com atores, eles utilizam esse sistema para algum propósito então, esses atores esperam que o sistema se comporte da maneira espe-rada. Um caso de uso especifica o comportamento de um sistema completo ou de parte dele, descrevendo assim os atores e seus relacionamentos. É possível verificar o diagrama de casos de uso do presente trabalho na Figura6.

Figura 6 – Diagrama de Caso de Uso

Fonte: Autoria Própria

O sistema pode ser utilizado por diversos atores, e cada um possui necessidades e permissões diferentes. Temos os seguintes perfis:

Perfil Usuário Diretor ACAPAM: este usuário possui total acesso ao sistema, ele utiliza o sistema para cadastrar, acessar e gerenciar animais, gerenciar e acessar o estoque de alimentos, verificar disponibilidade de horários, emitir documentos gerais e contratar funcionários e voluntários.

Perfil Usuário Funcionário ACAPAM: este usuário utiliza o sistema para cadastrar, acessar e gerenciar animais, gerenciar e acessar o estoque de alimentos e verificar disponibilidade de horários.

Perfil Usuário Veterinário / Técnico Veterinário: este usuário utiliza o sistema tal como o usuário voluntário, com o diferencial de ser o único usuário capaz de editar o prontuário

(38)

Capítulo 3. Proposta de Solução 37

do animal.

Perfil Usuário Colaborador Voluntário: este usuário utiliza o sistema para dar baixa em ração, notificar que o animal está doente, verificar horários de outros colaboradores, solicitar alteração de horário.

Perfil Usuário Cidadão: este usuário utiliza o sistema para verificar o perfil dos animais aptos à adoção, consultar o estoque de alimentos e materiais de limpeza, consultar sobre animais adotados e principais notícias sobre a organização.

3.6

Arquitetura do Projeto

O sistema possui uma Web Service baseada nos princípiosRESTque fará a comunicação entre o servidor de banco de dados e as aplicações, como é possível observar na Figura7. Durante o desenvolvimento das aplicações, foi utilizado o padrão Model-View-Controller (MVC), onde na aplicação Mobile possui a camada de View que fica na pasta de layout, onde ficam os arquivos em XML e Material Design, na camada de controle, foi desenvolvida em Java, assim como a camada de modelo. Já na aplicação Web, foi utilizado HTML e CSS para a camada de visualização e PHP para a camada de controle e de modelo.

Figura 7 – Visão Geral da Arquitetura

Fonte: A própria autora

Durante o desenvolvimento, foi necessário fazer o uso de alguns mecanismos arquite-turais, os quais foram essenciais durante a implementação do projeto, como é possível ver na Tabela2.

(39)

Tabela 2 – Mecanismos Arquiteturais

Mecanismo de Análise Mecanismo de Design Mecanismo de Implementação Persistência Banco de dados relacional MySQL

Camada de distribuição Classe de comunicação com o banco, classe de persistência.

REST API + Node.js + Express Front-End Interface de comunicação com

o usuário do portal.

HTML + CSS + PHP com Laravel (Web) XML + Java (Mobile) Build Programação da IDE para

validação do código fonte.

Android Studio Visual Studio Code Deploy Configuração da IDE de deploy. Artisan e Instant Run

Fonte: A própria autora

Onde, as tecnologias mencionadas na Tabela2consistem em: • MySQL: sistema gerenciador de banco de dados relacional.

• Laravel: framework para o desenvolvimento de aplicações web, utilizando PHP. Seu objetivo é aumentar aplicativos que podem ser acessados por um navegador web, sob o padrão model–view–controller (MVC).

• REST API: consiste numa técnica de desenvolvimento fortemente baseada nos métodos de protocolo HTTP (GET, POST, PUT e DELETE).

• Node.js: é um framework que consiste num ambiente de execução JavaScript para opera-ções feitas pelo servidor e possui a estrutura Model-View-Controller (MVC) como padrão para desenvolvimento.

• Express: é um framework Node.js que fornece um conjunto de recursos para aplicações Web e mobile.

• GitHub: espécie de rede social para desenvolvedores. Permite a hospedagem de projetos pessoais em nuvem. Além disso, quase todos os projetos/framework/bibliotecas sobre desenvolvimento Open Source estão neste site, sendo possível acompanhá-los através de novas versões, contribuir informando bugs ou até mesmo enviando código e correções.

3.6.1

Diagrama de Sequência

Nesta seção, está detalhado 5 casos de usos em forma de diagramas de sequência, com a finalidade de mostrar como funciona a interação entre o usuário do sistema e as camadas de abstração do mesmo.

(40)

Capítulo 3. Proposta de Solução 39

3.6.1.1 Caso de uso 1 - Login

A Figura8mostra primeiro um caso de uma tentativa de entrar no sistema com login e senha inválidos, fazendo com que ao realizar a consulta no banco de dados, não fosse retornado nenhum registro, gerando uma falha. Após tentar novamente, agora com um login e senha válidos, o sistema libera o acesso.

Figura 8 – Caso de uso 1 - Login

Fonte: A própria autora

3.6.1.2 Caso de uso 2 - Cadastrar animal

A Figura9mostra o primeiro caso de uma tentativa de realizar o cadastro de animal de forma errada ou sem preencher todos os campos, o controller valida esses dados e retorna para o usuário uma mensagem de erro. Após alertado, o usuário preenche de forma correta o formulário e os dados são inseridos no banco de dados.

3.6.1.3 Caso de uso 3 - Cadastrar prontuário

Neste caso mostrado na Figura 10, para cadastrar um prontuário, o usuário busca o animal e o sistema vai até o banco de dados com a lista de animais. O usuário seleciona o animal, o qual vai cadastrar o prontuário e preenche esse formulário, no primeiro caso, de forma errada ou sem preencher todos os campos, então, o controller valida esses dados e retorna para o usuário uma mensagem de erro. Após alertado, o usuário preenche de forma correta o formulário e os dados são inseridos no banco de dados.

Referências

Documentos relacionados

“construção de uma visão mais realista do Mundo do Trabalho e das perspectivas de carreira [dos estudantes estagiários]; [...] promoção de competências de empregabilidade

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A partir das análises realizadas no que tange às articulações entre processo formativo que enfatizou a ressignificação e aplicação, inferimos que a aplicação da SEA replanejada no

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

Por fim, dada as previstas asserções, o presente artigo conclui a nulidade da Língua Esperanto como proposta de embate ao imperialismo americano, conquanto, o

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

ed è una delle cause della permanente ostilità contro il potere da parte dell’opinione pubblica. 2) Oggi non basta più il semplice decentramento amministrativo.