Buscar

Pet monitor

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

FACULDADE ANHANGUERA 
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 
 
 
 
 
 
SARA GIOVANA MIRANDA 
 
 
 
 
 
 Produção Textual Interdisciplinar Individual – PTI 
Pet Monitor 
 
 
 
 
Disciplinas: 
Introdução Ao Desenvolvimento De Sistemas Web 
Lógica E Técnicas De Programação 
Metodologia Científica 
Processos De Negócio E Software 
Seminário II 
 
 
 
 
 
 
Belo Horizonte 
02 de Novembro de 2019 
 
 
 
SARA GIOVANA MIRANDA 
 
 
 
 
Produção Textual Interdisciplinar Individual – PTI 
Pet Monitor 
 
 
 
 
 
 
 
Produção textual Interdisciplinar Individual 
apresentada ao curdo de Tecnologia em Análise e 
Desenvolvimento de Sistemas da Faculdade 
Anhanguera como parte dos requisitos para obtenção 
do título de Tecnólogo em Análise e 
Desenvolvimento de Sistemas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Belo Horizonte 
02 de Novembro de 2019
 
 
 
SUMÁRIO 
 
1 ALGORITMO 4 
2 PROTÓTIPO PÁGINA WEB 6 
2.1 CÓDIGO-FONTE HTML 6 
2.2 CÓDIGO-FONTE CSS 9 
3 REQUISITOS DE NEGÓCIO E REQUISITOS DE SOFTWARE 11 
2.1 CICLO DE VIDA 11 
2.2 REQUISITO DE SOFTWARE 12 
2.3 PROCESSO DE NEGÓCIO 14 
REFERÊNCIAS 15 
 
4 
 
 
 
1 ALGORITMO 
 
 class Coordenada { 
 setValor(valor){ 
 let caso = (valor||"").match(/(-
?\d{1,3})° (\d{1,2})\' ?(\d{0,2}\.?\d{0,2})\"/); 
 if(caso === null){ 
 caso = parseFloat(valor); 
 if(!isNaN(caso)){ 
 //let graus = Math.trunc(caso); 
 //let dec = caso - graus; 
 this.val_str = valor; 
 this.val_graus_dec = caso; 
 this.val_rad = this.val_graus_dec / 180 * Math.PI; 
 return; 
 } 
 else 
 throw new Error("Coordenada não se encaixa no padrão"); 
 } 
 
 let [graus, min, seg] = caso.slice(1).map(v=>parseFloat(v)); 
 
 if(seg >= 60){ min = min + Math.floor(seg / 60); seg = seg % 60; } 
 if(min >= 60){ graus = graus + Math.floor(min / 60); min = min % 60;} 
 
 if(graus >= 360) graus = graus%360; 
 
 this.val_str = valor; 
 this.val_gms = { 
 graus, min, seg 
 }; 
 this.val_graus_dec = graus + ((min + (seg / 60)) / 60); 
 this.val_rad = this.val_graus_dec / 180 * Math.PI; 
 
 } 
 constructor(valor){ 
 this.setValor(valor); 
 } 
} 
class Posicionado { 
 setLat(lat){ 
 this.lat.setValor(lat); 
 } 
 setLon(lon){ 
 this.lon.setValor(lon); 
 } 
 
 constructor(lat,lon){ 
 this.lat = new Coordenada(lat); 
 this.lon = new Coordenada(lon); 
 } 
calcula_distancia(outro){ 
 let lat2 = outro.lat.val_rad; //Já em radianos! 
 let lon2 = outro.lon.val_rad; 
 let lat1 = this.lat.val_rad; 
5 
 
 let lon1 = this.lon.val_rad; 
 //cálculos... 
 
 let R = 6371e3; // metres 
 let φ1 = lat1;//.toRadians(); 
 let φ2 = lat2;//.toRadians(); 
 let Δφ = (lat2-lat1);//.toRadians(); 
 let Δλ = (lon2-lon1);//.toRadians(); 
 
 let a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + 
 Math.cos(φ1) * Math.cos(φ2) * 
 Math.sin(Δλ/2) * Math.sin(Δλ/2); 
 let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
 
 let d = R * c; 
 
 return d/1000; 
 
 } 
} 
 
class Dono extends Posicionado{ 
 constructor(nome, sexo, latitude, longitude){ 
 super(latitude,longitude); 
 this.nome = nome; 
 this.sexo = sexo; 
 } 
} 
 
class Cachorro extends Posicionado{ 
 constructor(nome, sexo, raça, latitude, longitude) { 
 super(latitude,longitude); 
 this.nome = nome; 
 this.sexo = sexo; 
 this.raça = raça; 
 } 
}; 
 
 
 
 
 
 
 
 
 
 
 
 
6 
 
2 PROTÓTIPO PÁGINA WEB 
 
 
Figura 1 – Printscreen do protótipo da Página Web 
2.1 CÓDIGO-FONTE HTML 
<!DOCTYPE html> 
<html> 
 <head> 
 <title>PET MONITOR</title> 
 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato"> 
 <link rel="stylesheet" href="./css/estilo.css"> 
 <script 
 src="https://code.jquery.com/jquery-3.4.1.js" 
 integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" 
 crossorigin="anonymous"> 
 </script> 
 <script type="text/javascript" src="./js/codigo.js"> 
 </script> 
 </head> 
 <body> 
 <main> 
 <div class="header"> 
 <p align ="center"> <img src="pets.png" width="700px"/> </p> 
 </div> 
 
 <h1 class="app-name">PET MONITOR</h1> 
 <h2 class="headline">Nunca perca seu pet de vista!</h2> 
 
 <p align="center"> Seus problemas em perder seu pet de vista acabaram! 
Com o avanço de tecnologias, foi possível 
 desenvolver um dispositivo portátil do tamanho de um pequeno chaveiro
, que pode ser colocado junto à 
7 
 
 coleira do seu pet que emite um sinal com a identificação do dispos
itivo, a data/hora e as coordenadas 
 georreferenciadas. Como por exemplo: <i> 562341, 17/07/2019 07:45:3
0, latitude: -23,294716, longitude: 
 -
51,165644</i>. O <b>Pet Monitor</b> tem a duração da bateria de pelo menos 1 ano e 
os dados serão disponibilizados através de um serviço 
 web, onde você poderá monitorar seu bichinho em tempo real tanto pe
lo app quanto pelo portal online. 
 
 </p> 
 
 <hr> 
 
 <div class="concerts"> 
 <h2>Dados</h2> 
 <table id="pets"> 
 <thead> 
 <tr> 
 <th>Nome do pet</th> 
 <th>Raça</th> 
 <th>Sexo</th> 
 <th>Latitude</th> 
 <th>Longitude</th> 
 <th>Distância calculada pelo aplicativo</th> 
 </tr> 
 </thead> 
 
 <tbody> 
 <tr align="center"> 
 <td>Mel</td> 
 <td>SRD</td> 
 <td>Fêmea</td> 
 <td id="latitude1">-23,294716</td> 
 <td id="longitude1">-51,165644</td> 
 </tr> 
 <tr align="center"> 
 <td>Cake</td> 
 <td>Persa</td> 
 <td>Fêmea</td> 
 <td>-29.294716</td> 
 <td>-39.8999933</td> 
 </tr> 
 
 <tr align="center"> 
 <td>Elvis</td> 
 <td>Spitz Alemão</td> 
 <td>Macho</td> 
 <td>-43.294716</td> 
 <td>-29.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Tchuchuca</td> 
 <td>Pinscher</td> 
 <td>Fêmea</td> 
 <td>-31.294716</td> 
 <td>-10.8999933</td> 
 </tr> 
8 
 
 <tr align="center"> 
 <td>Jake</td> 
 <td>Agaporni</td> 
 <td>Macho</td> 
 <td>-98.294716</td> 
 <td>-11.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Luke</td> 
 <td>Poodle</td> 
 <td>Macho</td> 
 <td>-13.294716</td> 
 <td>-12.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Totó</td> 
 <td>SRD</td> 
 <td>Macho</td> 
 <td>-53.294716</td> 
 <td>-14.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Ninico</td><td>SRD</td> 
 <td>Macho</td> 
 <td>-27.294716</td> 
 <td>-16.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Belinha</td> 
 <td>Pastor Alemão</td> 
 <td>Fêmea</td> 
 <td>-33.294716</td> 
 <td>-18.8999933</td> 
 </tr> 
 <tr align="center"> 
 <td>Órion</td> 
 <td>Angorá</td> 
 <td>Fêmea</td> 
 <td>-53.294716</td> 
 <td>-19.8999933</td> 
 </tr> 
 </tbody> 
 </table> 
 </div> 
 </main> 
 
 <script> 
 let dono = new Dono("","","-21.5483943", "-68.43278392"); 
 [...document.querySelectorAll("#pets tbody tr")].forEach(linha_pet=>{ 
 let sexta_coluna = linha_pet.querySelector("td:nth-of-type(6)"); 
 if(sexta_coluna== null) linha_pet.appendChild(sexta_coluna = document
.createElement("td")); 
 
 let latitude_cachorro = linha_pet.querySelector("td:nth-of-
type(4)").innerText; 
 let longitude_cachorro = linha_pet.querySelector("td:nth-of-
type(5)").innerText; 
9 
 
 let cachorro = new Cachorro("","","",latitude_cachorro, longitude_cac
horro); 
 sexta_coluna.innerText = dono.calcula_distancia(cachorro).toFixed(2) 
+ "km"; 
 }); 
 </script> 
 </body> 
</html> 
 
2.2 CÓDIGO-FONTE CSS 
body { 
 width: 95%; 
 max-width: 1000px; 
 margin: auto; 
 background: url(O.JPG) center; 
 
 font-family: 'Lato'; 
 line-height: 1.5; 
 color: rgb(32, 9, 9); 
 } 
 
 main { 
 background: #ffffffc2; 
 padding: 5px 40px; 
 margin-top: 20px; 
 border-radius: 10px; 
 } 
 
 .header, .app-name, .headline { 
 margin: 0; 
 text-align: center; 
 } 
 
 .concerts { 
 margin: 30px 0; 
 text-align: center; 
 width: 100%; 
 } 
 
 .concerts table { 
 background: #cb3a3ab3; 
 border-radius: 10px; 
 padding: 10px; 
 margin: 0 auto; 
 } 
/* ESTILO DO SLIDER */ 
 .slider { 
 display: block; 
 height: 293px; 
 width: 600px; 
 margin: auto; 
 margin-top: 20px; 
 position: relative; 
 } 
 
 .slider li { 
10 
 
 list-style: none; 
 position: absolute; 
 } 
 
 .slider img { 
 margin: auto; 
 height: 100%; 
 width: 100%; 
 vertical-align: top; 
 } 
 .slider input { 
 display: none; 
 } 
 .slider label { 
 background-color: #000; 
 bottom: 10px; 
 cursor: pointer; 
 display: block; 
 height: 10px; 
 position: absolute; 
 width: 10px; 
 z-index: 10; 
 } 
 
 .slider li:nth-child(1) label { 
 left: 10px; 
 } 
 
 .slider li:nth-child(2) label { 
 left: 40px; 
 } 
 
 .slider li:nth-child(3) label { 
 left: 70px; 
 } 
 .slider img { 
 opacity: 0; 
 visibility: hidden; 
 } 
 
 .slider li input:checked ~ img { 
 opacity: 1; 
 visibility: visible; 
 z-index: 10; 
 } 
 
 
 
 
 
 
 
 
11 
 
3 REQUISITOS DE NEGÓCIO E REQUISITOS DE SOFTWARE 
Requisitos de negócio são requisitos de alto nível que explicam necessidades do 
negócio e justificam a execução de um ou mais projetos. (Vasconcelos, 2012) Ou seja, os 
requisitos de negócio representam os objetivos do próprio negócio. Um processo de software 
é um conjunto de atividades relacionadas que levam à produção de um produto de software 
(Sommerville, 2011). Os requisitos de software compreendem as necessidades de um usuário, 
as exigências do negócio e da empesa que devem ser atendidos pelo software. 
• Propósito: Este documento especifica os requisitos contemplados pela ferramenta Pet 
Monitor. 
• Escopo: O documento descreve os casos de uso de uma ferramenta de monitoramento 
de animais, que permite que o tutor monitore em tempo real a localização do seu animal 
de estimação e receba um sinal de alerta caso o animal ultrapasse uma distância 
considerada segura. 
• Público-alvo: Pessoas que possuem animais de estimação. 
o Classe e Característica dos Usuário: A ferramenta Pet Monitor 
será utilizada por um perfil de usuário, tido como tutor, que terá permissão para 
inserir sua localização (em coordenadas geográficas) e cruzar dados com a 
localização do animal emitida via sensor acoplado ao animal (com o auxílio de 
uma coleira, anilha, entre outros). 
2.1 Ciclo de Vida 
 
Figura 2 – Ciclo de Vida de um Software 
 
Levantamento das 
necessidades
Análise
Projeto
Desenvolvimento
Implementação
Manutenção
12 
 
• Levantamento das necessidades: identificar as necessidades de informações da 
organização como público alvo, animais de estimação entre outros. 
• Análise: Analisar os dados do levantamento para que seja possível criar um escopo 
claro e objetivo. 
• Projeto: Construir as especificações obtidas do escopo. Interface, banco de dados, 
hardware, rede. 
• Desenvolvimento Desenvolvimento da ferramenta Pet Monitor utilizando a linguagem 
de marcação HTML e scripts JS. 
• Implementação após o sistema ter passado satisfatoriamente por testes, transferir o 
sistema do ambiente de desenvolvimento para ambiente de produção. 
• Manutenção Adição de novos recursos em resposta às demandas dos usuários, correção 
de eventuais bugs. 
2.2 Requisito De Software 
➢ Requisitos Funcionais: 
[R1] Identificar os usuários: Os usuários deverão estar “logados” no sistema antes de acessarem 
os recursos da ferramenta Pet Monitor, de modo que o sistema possa controlar e identificar as 
permissões dos usuários de acordo com o seu perfil. 
[R2] O sistema deve permitir que usuários logados sejam capazes de inserir sua localização, 
atribuindo a conexão com a distância de seu animal em uma determinada data e/ou no exato 
momento . 
[R3] O sistema deve permitir que usuários autorizados sejam capazes de editar posteriormente 
sua localização em caso de erro de digitação. 
[R4] O sistema deve manter um histórico de configurações anteriores para que o usuário possa 
acessá-lo e ter acesso às configurações de acordo com o ambiente em que se encontra. 
[R5] O sistema deve permitir que o usuário adicione, exclua e altere informações sobre seus 
animais de estimação para que seja de fácil visualização e identificação no caso de se possuir 
mais de um animal. 
[R6] O sistema deve permitir uma definição de distância entre animal e tutor considerada segura 
pelo usuário. 
[R7] O sistema deve emitir um aviso sonoro caso a distância entre animal e tutor seja superior 
à metragem de distância pré definida pelo dono. Neste caso, deve-se exibir uma janela pop-up 
com o aviso por escrito: ATENÇÃO, SEU PET ESTÁ MUITO DISTANTE. APROXIME-SE 
DELE. 
13 
 
[R8] O sistema deve possibilitar que o usuário possa reportar no caso da emissão do alerta da 
ultrapassagem de distância, se o cão foi encontrado ou não. Neste caso, deve-se exibir uma 
janela pop-up com a pergunta: O ANIMAL FOI ENCONTRADO? E os seguintes botões: SIM 
e NÃO. No caso de ser selecionado SIM, registrar as distâncias normalmente. Caso seja 
selecionado NÃO deve-se mostrar a seguinte mensagem: “Em caso de perda ou roubo, não 
deixe de fazer o boletim de ocorrência e a queixa, mesmo que não haja certeza sobre a autoria 
do roubo”. 
 
➢ Requisitos Não-Funcionais 
Compatibilidade:[R9] A ferramenta deve seguir as recomendações de usabilidade, definidas pelo Grupo de 
Trabalho IHC que foram postadas no portal do Projeto Tidia-ae na incubadora. 
Confiabilidade: 
[R10] O sistema deve informar ao usuário quando ele tentar definir uma distância ligeiramente 
grande entre tutor e animal. 
[R11] O sistema deve informar ao usuário que garanta que o software não seja responsabilizado 
em caso de perda do animal. O sistema precisa oferecer recursos que possibilitem que o usuário 
encontre seu animal em caso de fuga, furto e/ou roubo, porém tais recursos só estarão 
disponíveis no momento em que o animal estiver fazendo uso do rastreador. 
Requisitos de Interface 
[R12] Interface baseada em linguagem de marcação HTML, gerada a partir de scripts, para 
utilização da ferramenta em navegadores Web e em dispositivos móveis, nos sistemas 
Android (4.0 ou superior) e iOS (7.0 ou superior). 
 
 
 
 
 
 
 
 
 
 
 
14 
 
2.3 Processo de Negócio 
 
 
 
 
 
 
 
Identificar a distância 
entre tutor e animal 
Distância é maior que a 
estabelecida como 
segura? 
sim não 
Emitir aviso 
sonoro/visual para alertar 
o tutor 
Armazenar dados de 
localização 
O usuário encontrou o 
animal? 
mostrar a seguinte 
mensagem: “Em caso de 
perda ou roubo, não 
deixe de fazer o boletim 
de ocorrência e a queixa, 
mesmo que não haja 
certeza sobre a autoria do 
roubo”. 
não 
sim 
Usuário insere a 
localização 
Cliente acessa o site da 
Pet Monitor 
Cliente emite pedido 
de compra 
Cliente realiza cadastro 
do tutor e do animal 
Receber pagamento do 
cliente 
Transportar e montar 
pedido 
Pedido entregue 
Instalação do acessório 
rastreador no animal 
Cliente acessa Pet Monitor 
15 
 
 
REFERÊNCIAS 
 
 
FAPESP. Especificação de Requisitos de Software. 2006. Disponível em: 
<http://www.lcad.icmc.usp.br/~jbatista/sce537/mat/projetos/proj1/requisitos.pdf>. Acesso em: 
01 nov. 2019. 
 
PALMA, Fernando. Modelo de Especificação de Requisitos de Software: template 
disponível para download. 2012. Disponível em: 
<https://www.portalgsti.com.br/2012/05/especificacao-de-requisitos-de-software-exemplo-
template.html>. Acesso em: 01 nov. 2019. 
 
SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Education do 
Brasil, 2011 
 
VASCONCELLOS, Paulo. +Requisitos do Negócio. 2012. Disponível em: 
<http://www.pfvasconcellos.eti.br/blog/2012/10/25/requisitos-do-negocio/>. Acesso em: 01 
nov. 2019. 
 
VENTURA, Plínio. O que é Regra de Negócio? 2019. Disponível em: 
<https://www.ateomomento.com.br/o-que-e-regra-de-negocio/>. Acesso em: 01 nov. 2019. 
 
VENTURA, Plínio. Requisitos de Software. 2019. Disponível em: 
<https://www.ateomomento.com.br/requisitos-de-software/>. Acesso em: 01 nov. 2019. 
 
 
 
16

Outros materiais