TCC-II João de Campos
TCC-II João de Campos
TCC-II João de Campos
RESUMO
Este trabalho apresenta o Pet Affection como uma solução inovadora para auxiliar
animais abandonados, integrando tecnologia e preocupação com o bem-estar animal.
Desenvolvido como parte do Trabalho de Conclusão de Curso em Engenharia de
Software na Universidade do Vale do Taquari - Univates, a pesquisa adotou uma
abordagem qualitativa para compreender a interação dos usuários com o aplicativo.
Utilizando métodos como entrevistas e observação participante, a pesquisa identificou
lacunas em soluções existentes, definiu requisitos cruciais para o Pet Affection e
considerou normativas e estudos relevantes. A metodologia descritiva foi empregada
para validar o aplicativo, utilizando métricas específicas para avaliar sua eficácia. Este
estudo contribui significativamente para a engenharia de software aplicada ao bem-
estar animal, fornecendo diretrizes claras para o desenvolvimento de uma ferramenta
eficiente na abordagem da problemática dos animais em situações de vulnerabilidade
nas ruas, incorporando práticas modernas como geolocalização e inteligência artificial.
1 INTRODUÇÃO ....................................................................................................... 10
1.1 Problema ............................................................................................................ 11
1.2 Objetivos ............................................................................................................ 12
1.2.1 Objetivo geral ................................................................................................. 12
1.2.2 Objetivos específicos..................................................................................... 12
1.3 Estrutura ............................................................................................................ 13
REFERÊNCIAS......................................................................................................... 67
APÊNDICE ................................................................................................................ 71
APÊNDICE A - Repositório do Projeto................................................................... 72
10
1 INTRODUÇÃO
1.1 Problema
1.2 Objetivos
abandonados ou perdidos;
• Desenvolver um aplicativo, considerando a usabilidade e a experiência do
usuário;
• Testar o aplicativo e dar um feedback, e com isso, realizar ajustes
necessários no aplicativo.
1.3 Estrutura
2 FUNDAMENTAÇÃO TEÓRICA
Os objetivos dos aplicativos para pets perdidos são ajudar a encontrar animais
que se perderam ou fugiram de suas casas, facilitando a busca e a identificação dos
pets e aumentando as chances de reencontro com seus tutores.
Segundo Anjo (2022), ao fornecer perfis detalhados dos pets abandonados,
com fotos, informações sobre sua personalidade e necessidades, o objetivo acaba
sendo encontrar um lar amoroso e responsável para eles.
De acordo com a Pilagallo (2021), o propósito de um aplicativo para encontrar
pets perdidos é oferecer uma plataforma eficiente e abrangente para ajudar a reunir
animais perdidos com seus tutores. Um dos objetivos é facilitar a localização e a
18
eles são uma presença constante em quase todos os aspectos do dia a dia, desde
jogos e entretenimento até serviços de saúde, finanças, transporte e muito mais. O
mercado de programação é um setor em constante expansão, com muitas
oportunidades para desenvolvedores criativos e inovadores.
Os aplicativos móveis têm um impacto significativo na sociedade atual. Eles
simplificaram muitas atividades, como fazer compras on-line, pedir comida, solicitar
serviços de transporte e realizar transações bancárias, tornando-as mais
convenientes e acessíveis. Além disso, os aplicativos têm permitido a comunicação
instantânea e global, conectando pessoas ao redor do mundo e encurtando distâncias.
Também têm exercido uma função crucial em setores como educação, saúde,
negócios e governança. Assim, são utilizados para melhorar a aprendizagem, facilitar
o acesso a informações médicas, aumentar a eficiência operacional das empresas e
fornecer serviços públicos mais eficientes e transparentes.
No futuro, espera-se que os aplicativos móveis continuem evoluindo e se
adaptando às necessidades em constante mudança dos usuários. Algumas
tendências emergentes incluem a integração de tecnologias avançadas, como
realidade virtual e aumentada, inteligência artificial e aprendizado de máquina. Além
disso, a integridade e confidencialidade dos dados dos usuários serão áreas de foco
cada vez maiores, à medida que a conscientização sobre a proteção de dados
pessoais aumenta.
Em síntese, os aplicativos móveis tornaram-se elementos essenciais em
nossas vidas, proporcionando conveniência, entretenimento, produtividade e
conexão. Com a constante inovação tecnológica, esses aplicativos continuarão
desempenhando um papel fundamental em como vivemos, trabalhamos e nos
relacionamos uns com os outros.
para os usuários.
O desenvolvimento mobile constitui um procedimento intricado que abrange
diversas fases, incluindo a concepção da ideia, a seleção da abordagem de
desenvolvimento, a escolha das linguagens de programação, o design da interface do
usuário, a implementação, os testes e a implantação nas lojas de aplicativos. É uma
área em constante evolução, com a necessidade de uma resposta para se adaptar às
mudanças nas tecnologias e nas preferências dos usuários.
3 TRABALHOS RELACIONADOS
arte com base na imaginação, utilizando temas sugeridos pela própria IA do aplicativo
ou prompts textuais.
A ferramenta é capaz de produzir uma ampla variedade de estilos artísticos,
desde abstratos até ultrarrealistas, de forma simplificada. Os usuários podem explorar
temas como anime, arte digital, 3D, retrô, fantasia, futurismo e muito mais,
proporcionando uma experiência artística diversificada.
Uma das características notáveis do AI Art Generator é a sua capacidade de
carregar arquivos do próprio dispositivo, permitindo que os usuários utilizem suas
próprias imagens como base para a criação de novas obras de arte. Essa
funcionalidade está disponível exclusivamente no plano vitalício do aplicativo,
conforme a imagem abaixo.
Figura 4 – Layout do App
Característica Trab. 3.1 Trab. 3.2 Trab. 3.3 Trab. 3.4 Trab 3.5 Proposta
4 MATERIAIS E MÉTODOS
4.1 Tecnologias
4 Essa licença é conhecida por ser permissiva e oferecer liberdade aos desenvolvedores para modificar.
38
possui recursos modernos, como tipagem estática e coleta de lixo. Essa linguagem
combinada com o Hot Reload, uma funcionalidade do Flutter, permite que os
desenvolvedores façam alterações no código em tempo real e vejam imediatamente
os resultados, agilizando o processo de desenvolvimento e teste.
Esse framework é uma plataforma poderosa para o desenvolvimento de
aplicativos móveis nativos, permitindo que os desenvolvedores criem interfaces de
usuário incríveis, ofereçam desempenho de alta qualidade e acessem facilmente
recursos do dispositivo. Com sua abordagem de desenvolvimento rápido e eficiente,
o Flutter se tornou uma escolha popular entre os desenvolvedores para a criação de
aplicativos móveis modernos e elegantes.
Com o Flutter, é possível desenvolver aplicativos com aparência nativa5,
garantindo uma experiência de usuário de alta qualidade. Esse framework possui uma
comunidade de desenvolvedores ativa e crescente. Isso significa que há uma vasta
quantidade de recursos, tutoriais, bibliotecas e soluções disponíveis para ajudar no
desenvolvimento do aplicativo.
armazenadas e muito mais. Esses recursos podem ser aproveitados para criar
aplicativos Flutter sofisticados que exigem manipulação de dados complexa.
Conforme mencionado por Costa (2013), o PostgreSQL é um sistema de
gerenciamento de banco de dados que segue o modelo relacional (SGBDR) de código
aberto, reconhecido por sua confiabilidade, flexibilidade e recursos avançados.
Desenvolvido para atender a uma variedade de requisitos de armazenamento e
manipulação de dados em aplicações de grande porte.
O PostgreSQL suporta a linguagem SQL padrão e proporciona uma extensa
gama de funcionalidades, incluindo suporte a transações ACID (Atomicidade,
Consistência, Isolamento e Durabilidade), controle de concorrência, indexação
avançada, gatilhos, procedimentos armazenados, replicação e extensibilidade. Isso
torna o PostgreSQL adequado para uma ampla variedade de aplicações, desde
pequenos projetos até sistemas empresariais complexos.
Além disso, o PostgreSQL é altamente customizável e permite aos
desenvolvedores estenderem suas funcionalidades por meio de linguagens de
programação como PL/pgSQL, PL/Python, PL/Perl, entre outras. Isso possibilita a
criação de funções personalizadas e procedimentos armazenados complexos dentro
do próprio banco de dados.
O desempenho do PostgreSQL também é notável, com otimizações avançadas
para consultas complexas e grandes volumes de dados. Ele oferece recursos como
índices avançados, otimização de consultas, paralelismo e suporte a dados
geoespaciais.
Outra vantagem do PostgreSQL é sua comunidade ativa e suporte contínuo. A
comunidade PostgreSQL é composta por desenvolvedores e usuários dedicados, que
contribuem com melhorias, correções de bugs e suporte através de fóruns, grupos de
discussão e recursos online.
O PostgreSQL é uma robusta plataforma de gerenciamento de banco de dados
relacional, conhecido por seus recursos avançados, alta customização e desempenho
otimizado. Sua extensa lista de funcionalidades, estabilidade e suporte ativo o tornam
uma escolha popular para aplicações que demandam armazenamento e manipulação
de dados confiáveis e eficientes.
40
O Google Maps API é uma plataforma disponibilizada pelo Google que permite
que os desenvolvedores incorporem recursos avançados de mapas interativos em
seus aplicativos e sites. Essa API oferece um conjunto abrangente de serviços e
funcionalidades para visualização de mapas, obtenção de informações geográficas,
cálculos de rotas, pesquisa de lugares, entre outros recursos relacionados a mapas.
Através do Google Maps API, os desenvolvedores podem integrar mapas interativos
em suas aplicações, permitindo que os usuários visualizem e interajam com
informações geográficas de maneira intuitiva. Eles podem exibir mapas
personalizados, marcadores, polígonos e linhas, além de adicionar interatividade,
como permitir que os usuários arrastem e soltem marcadores ou explorem a área em
diferentes níveis de zoom.
Além da visualização de mapas, a API também permite a obtenção de
informações geográficas detalhadas, como coordenadas de latitude e longitude,
endereços, nomes de lugares, além de oferecer recursos avançados de pesquisa. Os
desenvolvedores podem utilizar essas informações para exibir dados relevantes no
mapa, como pontos de interesse, endereços de empresas, informações de trânsito,
entre outros, conforme o exemplo abaixo.
Outro recurso importante fornecido pelo Google Maps API é a capacidade de
calcular rotas e fornecer direções de navegação. Os desenvolvedores podem usar a
API para calcular a rota mais rápida ou otimizada entre dois pontos, exibir a rota no
mapa e fornecer informações de direção passo a passo para os usuários.
O funcionamento do Google Maps API é baseado na interação entre os
desenvolvedores e os servidores do Google. Os desenvolvedores acessam a API por
meio de uma chave de API exclusiva, que autentica e controla o acesso ao serviço.
Eles fazem solicitações à API para obter os dados e recursos desejados, e a API
responde com as informações solicitadas, como mapas renderizados, dados
geográficos ou resultados de pesquisa (Documentation Google Maps API, 2023).
Google, como mapas, autenticação, notificações push, análises, entre outros, em seus
aplicativos Android (De Araújo, 2018).
Conforme Lecheta (2013), a plataforma Android possui uma arquitetura robusta
e flexível que facilita a criação de aplicativos para dispositivos móveis eficientes e de
alta qualidade. A arquitetura do Android é baseada em camadas, cada uma com sua
função específica. Vamos explorar essa arquitetura em detalhes:
• Aplicativos: a camada de aplicativos é onde os usuários interagem
diretamente com os aplicativos desenvolvidos para Android. Esses
aplicativos podem ser instalados e executados em dispositivos Android e
são a interface principal para os usuários utilizarem os recursos do sistema
operacional;
• Frameworks de Aplicativos: essa camada fornece um conjunto de
bibliotecas e APIs (interfaces de programação de aplicativos) que permitem
o desenvolvimento de aplicativos Android. O Android SDK (Software
Development Kit) disponibiliza uma vasta variedade de ferramentas e
recursos para os desenvolvedores criarem aplicativos com funcionalidades
avançadas;
• Bibliotecas Android: as bibliotecas Android são conjuntos de código pré-
construído que fornecem recursos e funcionalidades específicas para os
desenvolvedores. Elas incluem bibliotecas para gráficos 2D e 3D,
manipulação de dados, conectividade de rede, gerenciamento de banco de
dados e muito mais. Essas bibliotecas facilitam o desenvolvimento de
aplicativos eficientes e otimizados;
• Máquina Virtual Dalvik: o Android utiliza uma máquina virtual especial
chamada Dalvik. Ela é responsável por executar o código dos aplicativos
Android. A Dalvik VM otimiza o desempenho dos aplicativos, convertendo o
código-fonte Java em um formato otimizado para execução eficiente em
dispositivos móveis;
• Kernel do Linux: a camada inferior da arquitetura do Android é o kernel do
Linux. Ele fornece os serviços básicos do sistema operacional, como
gerenciamento de recursos (memória), gerenciamento de energia, drivers
de dispositivo e comunicação com o hardware do dispositivo. O kernel do
Linux é a base sobre a qual o sistema operacional Android é construído.
43
O Google Cloud Vision API é um serviço oferecido pela Google que utiliza
recursos avançados de Inteligência Artificial (IA) para analisar e compreender o
conteúdo de imagens. Ele permite que os desenvolvedores realizem tarefas
complexas, como reconhecimento de objetos, detecção de rostos, identificação de
textos e muito mais. O funcionamento do Google Cloud Vision API é fundamentado
em princípios de aprendizado de máquina treinados em um grande conjunto de dados
de imagens. Esses algoritmos são capazes de extrair informações valiosas a partir
das imagens, analisando pixels, padrões e características visuais.
Ao utilizar o Google Cloud Vision API, os usuários podem enviar imagens para
a API e receber resultados com informações detalhadas sobre o conteúdo dessas
imagens. Por exemplo, é possível identificar objetos específicos presentes na
imagem, como carros, animais, alimentos, e obter informações adicionais sobre eles.
Além disso, a API pode detectar e reconhecer rostos, identificar características faciais
como olhos, narizes e sorrisos, e até mesmo atribuir estimativas de idade e emoções.
Ela também é capaz de identificar textos presentes nas imagens, permitindo a
extração de palavras-chave ou até mesmo a tradução de idiomas (Documentation
Cloud Vision API, 2023).
O aplicativo móvel a ser desenvolvido servirá para ajudar na busca por animais
de estimação. Ele permitirá que os usuários relatem animais perdidos e forneçam
informações, como fotos, descrição, local e data em que o animal foi visto pela última
vez. Além disso, o app fornecerá recursos de busca e notificação para ajudar na
localização dos animais e de seus proprietários.
A seguir, serão fornecidos os detalhes da implementação que atendem aos
requisitos do sistema. Esses detalhes incluem informações sobre a arquitetura
escolhida, diagrama de estados, estrutura do banco de dados, implementações e
testes.
45
Nota-se que há três tabelas principais para segmentar informações dos pets e
dos usuários. A tabela de usuário é basicamente formada pelos dados do cliente; com
isso, ela se liga às demais tabelas, uma que registra o seu histórico chamada
usuario_historico e a outra para cadastrar o seu animal de estimação, chamada de
pet.
Nº Especificação do Requisito
RF 1 Cadastrar os usuários, com nome, endereço de e-mail, idade, telefone e senha como os
campos obrigatórios.
Validar o endereço de e-mail para não repetir.
RF 2 Cadastrar os animais, contendo a cor, foto, raça, local e data do desaparecimento como
campos obrigatórios. Os campos como o nome não serão obrigatórios.
RF 3 Pesquisar animais perdidos com base em critérios como localização, raça, foto, cor e
aspecto, se tiver.
RF 4 Detalhar os animais perdidos por completo, incluindo foto, descrição e informações de
contato do proprietário.
RF 5 Cadastrar o histórico de usuários contendo a descrição e a data de registro como campos
obrigatórios.
RF 6 Notificar o usuário de animais encontrados próximos à localização do usuário.
Fonte: Do autor (2023).
Nº Especificação do Requisito
O sistema deve ser capaz de suportar pelo menos 1000 usuários simultâneos sem
RNF 1
apresentar degradação significativa no tempo de resposta.
As senhas dos usuários devem ser armazenadas de forma criptografada no banco de
RNF 2
dados.
A interface do usuário deve ser intuitiva e de fácil aprendizado, para que usuários novatos
RNF 3
possam realizar tarefas sem a necessidade de treinamento extenso.
As atualizações de software devem ser realizadas de forma incremental e sem afetar
RNF 4
negativamente a operação do sistema.
A capacidade de armazenamento do banco de dados deve ser facilmente ampliada à
RNF 5
medida que o número de registros cresce.
Fonte: Do autor (2023).
Para utilizar a Cloud Vision API, é necessário integrá-la ao aplicativo por meio
de chamadas de API. Os desenvolvedores podem enviar imagens para a API e
receber as respostas estruturadas com as informações extraídas da imagem.
A Cloud Vision API permite uma ampla gama de funcionalidades, facilitando a
análise e compreensão de imagens, sendo extremamente útil para aplicativos que
necessitam de recursos de visão computacional, reconhecimento e interpretação de
imagens de forma rápida e precisa. Na imagem a seguir podemos ver o resultado
sendo exibido em tela.
57
Na figura 17, podemos ver um erro de implementação que mais para a frente
foi corrigido, onde o animal não foi identificado na foto, justamente por estar distante
ou até mesmo pela falta de iluminação.
60
Na figura 19 podemos ter uma tela de status para o usuário marcar se o seu
pet foi encontrado ou se ainda está perdido, e com base nesse status a I.A vai pegar
da tabela do banco de dados e verificar se ele está perdido ou não, pois se ele estiver
com o status de “Encontrado” a I.A vai ignorar a foto.
Com isso a repetição dos testes permitiu verificar a eficácia das modificações
implementadas, reforçando a importância da continuidade na verificação e validação
do sistema, especialmente no que tange à identificação precisa por IA. Na imagem
abaixo podemos ver os pets encontrados e clicando neles podemos acessar dados
específicos e até mesmo conversar com o usuário que o localizou conforme na
62
imagem 16 e 20.
Figura 20 – Mais resultados da implementação
6 CONSIDERAÇÕES FINAIS
Outros trabalhos que poderiam se vincular a este aplicativo incluem pesquisas sobre
a eficácia de tecnologias de reconhecimento de imagem em contextos específicos,
estudos sobre a psicologia e o impacto emocional de tutores de animais que perderam
seus pets e análises da efetividade de aplicativos semelhantes em outras regiões ou
para diferentes espécies de animais.
O aplicativo não só incita a inovação no campo da reunificação animal, mas
também inspira trabalhos futuros que podem explorar novas funcionalidades,
aprimorar a precisão da IA e adaptar a tecnologia para atender a diversas
necessidades dentro da comunidade de cuidadores de animais. Essa interconexão
entre o aplicativo e pesquisas complementares pode contribuir significativamente para
o avanço e a evolução contínua no campo do bem-estar animal e da tecnologia
aplicada.
Portanto, o aplicativo de ajuda a pets perdidos apresenta uma proposta
promissora para a reunificação de animais com suas famílias, fornecendo uma
solução inovadora e tecnologicamente avançada. A contínua pesquisa,
desenvolvimento e aprimoramento são essenciais para maximizar o potencial do
aplicativo e seu impacto positivo na comunidade de tutores de animais de estimação
e organizações de resgate.
67
REFERÊNCIAS
ANAT, Biletzki; ANAT, Matar. Ludwig Wittgenstein. [S.l.], 20 out. 2021. Disponível:
https://plato.stanford.edu/entries/wittgenstein/. Acesso em: 01 mai. 2023.
GIL, Antonio C. Como elaborar projetos de pesquisa. 4. ed. São Paulo: Atlas,
2002. Acesso em: 18 jul. 2023.
GOMES, Lucas. A história dos apps, uma breve linha do tempo. [S.l.], 25 mai.
2021. Disponível: https://www.showmetech.com.br/a-historia-dos-apps/. Acesso em:
19 mai. 2023.
LING, Rich. The Mobile Connection: The Cell Phone's Impact on Society. 1. ed.
Califórnia: San Francisco, 2004.
REGAN, Tom. The Case for Animal Rights. [S.l.], 1986. Disponível:
https://www.wellbeingintlstudiesrepository.org/cgi/viewcontent.cgi?article=1003&cont
ext=acwp_awap. Acesso em: 01 mai. 2023.
SILVA, Caio Poli; FEYH, Pedro Gustavo Ramm; ROLAND, Carlos Eduardo de
França. PETS: desenvolvimento de sistema de geolocalização para monitoramento
de animais de estimação. Revista eletrônica de sistemas de informação e gestão
tecnológica, [S.l.]: Uni-FACEF, v. 9, n. 3, 2018.
APÊNDICE
72