Baixe o app para aproveitar ainda mais
Prévia do material em texto
ZORAIDA CONDORI BOZO RA: C7830D-7 Desenvolvimento do escopo de um projeto de TCC” Sistema de Georreferenciamento para monitoramento de objetos moveis, usando conceitos de engenharia de software. Trabalho de Atividade Prática Supervisionada Apresentada à Universidade Paulista (UNIP), Como a exigência para finalização do 7°Sem. São Paulo, 2020 ZORAIDA CONDORI BOZO RA: C7830D-7 Desenvolvimento do escopo de um projeto de TCC” Sistema de Georreferenciamento para monitoramento de objetos moveis”, usando conceitos de engenharia de software. Trabalho de Atividade Prática Supervisionada Apresentada à Universidade Paulista (UNIP), Como a exigência para finalização do 7°Sem. Orientador(a): Eliane de Oliveira Santiago São Paulo, 2020 Universidade Paulista (UNIP) Curso de Bacharelado em Ciência da Computação Coordenadora: Eliane Oliveira Santiago São Paulo, 2020 RESUMO Este trabalho apresenta o desenvolvimento de um escopo de projeto (TCC” Sistema de Georreferenciamento para monitoramento de objetos moveis”), software aborda o desenvolvimento de um sistema de monitoramento a partir de um dispositivo móvel baseado em mecanismo de georreferenciamento. O estudo do desenvolvimento tem a finalidade de compreender as técnicas para se trabalhar com a Prototipação, que é um dos ciclos de vida da Engenharia de Software, além de definir requisitos funcionais e não funcionais. Neste trabalho primeiramente vemos as definições de Engenharia de Software explicando os ciclos de vidas e posteriormente as documentações escolhidas para o desenvolvimento do Sistema. Ao final é apresentado o estado do Sistema e a conclusão sobre desenvolvimento da aplicação. Palavras Chaves: Engenharia de software, desenvolvimento, Sistema de Georreferenciamento para monitoramento de objetos moveis. ABSTRACT This work presents the development of a project scope (TCC ”Georeferencing System for monitoring mobile objects”), software addresses the development of a monitoring system from a mobile device based on a georeferencing mechanism. The development study aims to understand the techniques to work with Prototyping, which is one of the life cycles of Software Engineering, in addition to defining functional and non-functional requirements. In this work we first see the definitions of Software Engineering explaining the life cycles and then the documentation chosen for the development of the System. At the end, the system status and the conclusion on application development are presented. Keywords: Software engineering, development, Georeferencing System for monitoring mobile objects. SUMÁRIO RESUMO ............................................................................................................ 4 ABSTRACT ........................................................................................................ 5 SUMÁRIO .......................................................................................................... 6 1 INTRODUÇÃO ............................................................................................ 9 2 OBJETIVO .................................................................................................. 9 3 DEFINIÇÃO DO ESCOPO DE UM PROJETO DE SOFTWARE. ............... 9 3.1 Gerenciamento do escopo ..................................................................... 10 3.2 Ciclo de Vida de um software................................................................. 10 4 METODOLOGIAS DE DESENVOLVIMENTO .......................................... 11 4.1 Modelo de Watefall - Cascata ................................................................. 11 4.2 Metodologia Ágil – SCRUM .................................................................... 11 5 ESPECIFICAÇÃO DOS REQUISITOS ..................................................... 13 5.1 Requisitos Funcionais ............................................................................ 13 5.2 Requisitos Não-Funcionais .................................................................... 13 5.3 Implementação ........................................................................................ 13 5.4 Verificação e Testes ................................................................................ 14 5.5 Manutenção ............................................................................................. 14 5.6 Qualidade do Software ........................................................................... 14 5.7 Métricas de Software .............................................................................. 14 6 PROJETO DE TCC ................................................................................... 16 6.1 Identificação dos requisitos do projeto ................................................ 16 6.1.1 Prototipação ....................................................................................... 18 7 FUNDAMENTOS TEÓRICOS ................................................................... 18 7.1 Geoprocessamento ................................................................................. 18 7.1.1 Dados para mapeamento ................................................................... 19 7.1.2 Modelagem de Dados em Geoprocessamento .................................. 19 7.2 Sistema de Posicionamento por Satélites Artificiais – GPS ............... 20 7.2.1 Sistema de Informação Geografica(SIG) ........................................... 23 7.3 Tecnologias para Desenvolvimento ...................................................... 24 7.3.1 Tecnologias de localização para dispositivos móveis ........................ 24 7.3.1.1 Sinal do GPS em sistemas Internos ........................................... 24 7.3.1.2 Triangulação ............................................................................... 25 7.3.1.3 GPS Assistido ............................................................................. 25 7.3.1.4 GSM ............................................................................................ 26 7.3.2 Linguagem Web – Java Script ........................................................... 26 7.3.3 Aplicativos .......................................................................................... 26 7.3.4 Web Services ..................................................................................... 27 7.3.4.1 REST .......................................................................................... 27 7.3.4.2 JSON .......................................................................................... 27 7.3.5 APIs ................................................................................................... 28 7.3.5.1 Google Maps ............................................................................... 28 7.4 Componentes do Sistema ...................................................................... 30 7.4.1 Componentes Físicos ........................................................................ 30 7.4.2 Arduino ............................................................................................... 30 7.4.2.1 Arduino Uno ................................................................................ 30 7.4.2.2 Componente GPS Gy-NEO6MV2 ............................................... 32 7.4.2.3 Componente GSM GPRS - GSM SIM 900.................................. 33 7.4.2.4 Componente / MicroSD .............................................................. 33 7.4.2.5 Bateria / Recarregável ................................................................ 34 7.4.2.6 Ambiente de Programação do Arduino ....................................... 35 8 DESENVOLVIMENTO .............................................................................. 36 8.1 Justicativa ................................................................................................ 37 8.2 Premissas ................................................................................................ 38 8.3 Restrições ................................................................................................ 38 8.4 Diagrama casos de uso .......................................................................... 38 8.5 Modelagem de dados .............................................................................. 39 8.6 Identificação dos Requisitos Funcionais .............................................. 39 8.7 Especificação dos Requisitos ................................................................ 40 9 CONSIDERAÇÕES FINAIS ...................................................................... 41 10 CONCLUSÃO ........................................................................................... 42 11 FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS – APS ......... 43 12 REFERENCIAS......................................................................................... 44 9 1 INTRODUÇÃO A engenharia de software é uma área da computação que utiliza fundamentos científicos para criação de e manutenção de softwares que estão categorizadas dentro em processos de software, modelagem, gestão da qualidade, gerenciamentos de projetos de software. Oferece modelos de abstratos para realizar o levantamento dos requisitos que o software deve atender, além de especificar o que será implantado e verificar se o que foi implantado atende as necessidades mapeadas junto ao usuário. 2 OBJETIVO Este trabalho tem como objetivo apresentar um escopo do projeto de TCC ” Sistema de Georreferenciamento para monitoramento de objetos moveis” programa computacional baseado em princípios da engenharia de software, que consiste em definir e documentar a arquitetura e requisitos necessários a cumprir seus objetivos. 3 DEFINIÇÃO DO ESCOPO DE UM PROJETO DE SOFTWARE. O escopo de um projeto consiste no trabalho que é necessário a ser feito para entregar um serviço, produto ou resultado com características especificadas e assim também importante especificar o que não está incluído no projeto. Dentro de gerenciamento do escopo, temos três questões essenciais. Problema a ser solucionado, resultados que se espera obter, metas devem ser atendidas para se conseguir os resultados esperados. Um projeto de Software nasce e deve ser considerado um sucesso quando resolve um problema, quando é simples de manter e evoluir e quando possui menor custo e prazo. Para o sucesso de um projeto é necessário conhecer as necessidades do cliente, definir os requisitos essenciais do projeto, é necessário 10 avaliar a validade do mesmo, documentar os procedimentos, escolher qual será a metodologia de desenvolvimento e testar as funcionalidades criadas. 3.1 Gerenciamento do escopo Gerenciamento do escopo é a documentação no qual deve ser descrito como será a definição, o desenvolvimento, a monitoria, os controles e a análise (a verificação) do escopo. • planejar o gerenciamento do escopo: documentar como o escopo será definido, validado e controlado; • coletar os requisitos: definir e documentar as necessidades das partes interessadas para atingir os objetivos do projeto; • definir o escopo: realizar uma descrição detalhada do projeto e do produto; • criar a Estrutura Analítica do projeto (EAP): subdividir os produtos e o trabalho em componentes mais gerenciáveis; • validar o escopo: formalizar a aceitação dos produtos do projeto; • controlar o escopo: monitorar o escopo e gerenciar alterações na linha de base do escopo. 3.2 Ciclo de Vida de um software O objetivo de um projeto é entregar um produto ou serviço. As etapas pelas quais um projeto de desenvolvimento de software passa, representa o ciclo de vida. O ciclo de vida indica e define basicamente as atividades, entregas e responsabilidades de cada indivíduo envolvido no processo de desenvolvimento do software. Seu objetivo é manter o projeto alinhado e organizado, e ao mesmo tempo deve suprir as necessidades dos clientes. 11 4 METODOLOGIAS DE DESENVOLVIMENTO 4.1 Modelo de Watefall - Cascata O modelo de cascata (Waterfall), pode ser chamado de ciclo de vida clássico ou tradicional, possui fases bem definidas para o desenvolvimento de software, começando com o levantamento de requisitos do sistema junto ao cliente, próximo passo planejamento e realizado a definição do escopo do projeto , modelagem(onde é realizado analise do sistema),construção(onde é feita a codificação de testes), última fase é realizada entrega ou implantação e culminado no suporte continuo do software concluído. Este modelo possui uma abordagem sequencial e sistemática. Apesar de ser relativamente muito antigo ainda é muito utilizado para engenharia de software. Imagem 1: Modelo Waterfall Fonte: Roger S. Pressman 4.2 Metodologia Ágil – SCRUM Os princípios de Scrum são consistentes com manifesto ágil e são usados para orientar as atividades de desenvolvimento dentro de um processo que incorpora as atividades estruturarias, requisitos, análise, projeto, evolução e entrega. No Método Ágil é utilizada uma abordagem de planejamento iterativa. Os métodos ágeis tentam minimizar os riscos no desenvolvimento de projetos de software em um prazo curto. No Scrum por exemplo, os projetos são divididos 12 em ciclos mensais ou quinzenais chamados de Sprint, onde são defendidas de atividades a serem executados dentro de TimeBox definido. As funcionalidades que são desenvolvidas ficam em uma lista chamado Product Backlog. Ao iniciar cada Sprint, é realizado uma reunião de planejamento de quais serão os itens priorizados pelo Product Owner. Nesta reunião a equipe de Deves(desenvolvimento), seleciona as atividades que será capaz de entregar durante a Sprint. Uma Sprint pode durar de 2 a 4 semanas. Todos os dias é realizada uma breve reunião que é chamada de daily, onde é possível identificar impedimentos nas entregas e priorizar as tarefas do dia que se inicia. Ao final de casa Sprint é realizada uma reiew dos itens que foram implementados durante s Sprint. Após a Review é realizada a retrospectiva e em seguida realiza-se o Planning novamente, indicando o novo ciclo. O projeto a ser apresentado neste trabalho foi utilizado a metodologia Scrum. Imagem 2 – Metodologia de Scrum Fonte: Roger S. Pressman 13 5 ESPECIFICAÇÃO DOS REQUISITOS A análise e especificação dos requisitos de um software tem com o principal objetivo de definir as funcionalidades e objetivos de um software, os requisitos de software são divididos em requisitos funcionais e não funcionais. 5.1 Requisitos Funcionais Os requisitos funcionais são as funções que os usuários necessitam e deseja que o sistema ou software ofereça para resolver problema. Através de comandos eventos internos ou externos são definidos as funções para operação do sistema. A partir dos requisitos funcionais que foram levantados, é possível documentar como o sistema deve reagir às entradas especificas, além de documentar como sistema não deve fazer. Os requisitos não devem ter definições contraditórias. 5.2 Requisitos Não-Funcionais Os requisitos não funcionaispodem ser definidos para o pleno funcionamento do sistema, os aspectos internos do sistema, como a arquitetura, usabilidade, desempenho, custo, segurança etc. Após a coleta de todas as informações de requisitos funcionais e não- funcionais elabora-se a análise dos requisitos para que o software possa atingir o seu objetivo, além de possibilitar a modelagem de dados. 5.3 Implementação A fase de implementação das informações que foram levadas e analisadas, é a fase de construção do software, também chamada de codificação do software. A programação envolve a tradução da codificação num código de máquina executável, utilizando a linguagem de programação. 14 5.4 Verificação e Testes Após a construção dos componentes e funcionalidades do software, são necessários testes para validar se os resultados correspondem às especificações dos requisitos descritos e documentos anteriormente. Testes são documentados no artefato chamado Plano de Testes. 5.5 Manutenção A medida que a construção de um software avança é necessário um processo de melhoria e otimização do software. A fase ocorre a correção de defeitos encontrada pelos usuários e melhoria nos processos que o software realiza. 5.6 Qualidade do Software É a área da engenharia de software que verifica se o produto atende ais requisitos planejados e se o software atende as necessidades do cliente. 5.7 Métricas de Software Segundo Peter Druker, 1995” Se você não pode medir você não pode gerenciar”, querendo se posicionar se não tem a percepção do que se trata você não terá a visão de se atuar no mercado. Para um projeto de software, para ter viabilidade precisamos de estatísticas, dados, pesquisas que resultam aquele melhor resultado para o melhor desempenho, tendo a previsão do que será feito terá um início imediato, caso contrário não terá como começar um projeto sem saber, o que ser utilizado, gastos, prazos tem que haver certa organização para previsão de tudo. Pela métrica às vezes não dão certo resultado imediato, pode dar inícios do que pode estar acontecendo, buscar, comparar as informações e estratégias. anteriores querendo mencionar como prever o futuro. Pode haver erros mais limita um conjunto de possibilidades que possa ter resultados menores, tendo em vista o que terá dentro do projeto. Baseada em métricas confiáveis pode possuir: 15 • Garantir a coleta de dados, armazenar, recuperar de forma segura e totalidade. • Indicadores que resultem respostas objetivas: Como e onde estamos? Aonde queremos chegar? Qual o prazo? Qual o custo? • Haver estimativa, acompanhamento e visibilidade. Métricas que sejam de totalidade, objetivas, precisas, confiáveis e que tenham padrões. Segundo Brooks, 2009 “Os projetos de software falham na maior parte do tempo por ultrapassarem o prazo”. Falhos em: • Ter a certeza que tudo dará certo. • Confundir o quanto precisamos para executar, qual será o progresso e não é aquilo que seria. • O progresso do projeto é mal orientado, organizado. • Adicionar pessoas que não tem nada a ver com o projeto prejudicando a finalização. A importância da métrica é objetivo a ser alcançado, pois tem que ser verificado cada etapa, se irá precisar de mais recursos, especialistas para realização do projeto, para ter bons resultados do início ao fim. 16 6 PROJETO DE TCC A iniciativa para o desenvolvimento deste sistema surgiu a partir de problema para localizar objetos móveis e verificar sua localização em tempo real. Existem hoje dispositivos para localização em tempo real, porém estes possuem rede de curta distância, como por exemplo, dispositivos que rastreiam a partir de Wi-Fi, Bluetooth e RFID. Para estas tecnologias de curta distância, há uma grande limitação por conta do uso da rede em uma área de conexão limitada. Outro problema encontrado são os dispositivos rastreadores de alto custo. Unindo tecnologia móvel que utiliza internet, tecnologia de georreferenciamento e Web Services, é apresentado neste trabalho um sistema de monitoramento de objetos móveis para smartphones, para resolver os problemas de monitoramento de objetos móveis em tempo real e para sanar problemas como os citados anteriormente de localização e monitoramento utilizando rede móvel a longa distância 6.1 Identificação dos requisitos do projeto Esta abordagem é mais informal e torna possível imaginar e visualizar o comportamento de um sistema, assim como da interação que é esperada por ele. Para ilustrar qual o cenário do Sistema de Georreferenciamento para monitoramento de objetos moveis, é apresentada a figura com a visão geral do sistema: 17 Imagem 3: Visão Geral da Arquitetura do Projeto Fonte: Própria, 2019 Imagem 3 - Caso de uso Visão geral do sistema de georreferenciamento para monitoramento de objetos moveis. Fonte Própria, 2019 18 Cenário, para a identificação dos requisitos que serão necessários para desenvolver o sistema. A partir daí, foi desenvolvida a prototipação, que será apresentada na próxima seção. 6.1.1 Prototipação 7 FUNDAMENTOS TEÓRICOS 7.1 Geoprocessamento Para Gilberto Câmara (2005), Geoprocessamento representa a área do conhecimento que utiliza técnicas matemáticas e computacionais para tratar a informação geográfica. De acordo com Assad e Sano (1998), o principal objetivo do geoprocessamento é fornecer ferramentas computacionais para determinar as evoluções espacial e temporal de um fenômeno geográfico e suas inter- relações. A área de geoprocessamento pode ser dividida em quatro categorias que são: • Técnicas para coleta de informação espacial: cartografia, sensoriamento remoto, sistema de posicionamento global - GPS, topografia convencional, fotogrametria, levantamento de dados alfanuméricos. • Técnicas de armazenamento de informação espacial: banco de dados orientado a objetos, relacional, hierárquico, etc. • Técnicas para tratamento e análise de informação espacial: modelagem de dados, geoestatística, aritmética lógica, funções topológicas, redes, etc. • Técnicas para o uso integrado de informação espacial: GIS (Geographic Information Systems), LIS (Land Information Systems) AM/FM (Automated Mapping/Facilities Management) e CADD (Computer-Aided Drafting and Design) 19 7.1.1 Dados para mapeamento Existem dois aspectos com relação aos dados, sendo eles a aquisição dos dados para gerar os mapas, e o uso do mapa como fonte de dados. Cada método de aquisição de dados para o mapeamento possui a finalidade de produzir mapas específicos. A qualidade dos mapas depende da aquisição dos dados. O levantamento de dados pode ser realizado por: • Topografia: Utiliza as medidas de distâncias horizontais e verticais, ângulos e orientação, para representar os pontos que definem a forma, as dimensões e as posições relativas de uma parte da superfície terrestre, a partir de uma projeção ortogonal sobre o plano. O sistema de coordenadas topográficas é um sistema plano-retangular, definido pelo eixo das ordenadas Y, paralelo à direção Norte-Sul e um eixo X (abcissa) formando 90° com a ordenada na direção Leste. Existe a coordenada Z dada pela cota ou altitude. • GPS: É um sistema de posicionamento geodésico baseado num conjunto de satélites especiais, capazes de fornecer posições na superfície terrestre com a exatidão de poucos centímetros. • Levantamento Aerofotogramétrico: Levantamento feito através de fotografias aéreas. Utiliza a fotogrametria para obter as informações através de processos de registro, interpretação e mensuração de imagens. 7.1.2 Modelagem de Dados em Geoprocessamento Um modelo de dados é um conjunto conceitual de ferramentas utilizadas para descrever como a realidade geográfica será apresentada no sistema. O modelo descreve como a realidade geográfica será representada nocomputador. O processo de modelagem é a forma de traduzir o mundo real em outros domínios, utilizando a abordagem do paradigma de quatro universos, sendo eles: 20 • O mundo Real: Entidades a serem modeladas no sistema. • O universo matemático: Definição matemática das entidades a serem incluídas no modelo. • O universo de representação: diversas entidades são mapeadas para representações geométricas. • O universo de implementação: Estruturas de dados e algoritmos são escolhidas, baseados em desempenho, capacidade do equipamento, tamanho e massa de dados para a codificação. Os itens mencionados do paradigma de quatro universos representam uma perspectiva de problemas de computação gráfica e processamento de imagens, como por exemplo, fenômenos que precisam ser representados como os tipos de solos, dados geofísicos e topográficos, além de distinguir as classes de dados geográficos e especializar essas classes nos tipos de dados utilizados comumente, modelos numéricos de terrenos, entre outros. 7.2 Sistema de Posicionamento por Satélites Artificiais – GPS O GPS ou Global Positioning System (Sistema de Posicionamento Global) é um sistema de rádio navegação, de posicionamento global que foi desenvolvido pelo departamento de defesa dos E.U.A. em 1973, segundo Monico (2000). Inicialmente criado com intuitos exclusivamente militares e gerido pelo Departamento de Defesa do Estados Unidos. Foi definitivamente aberto à utilização pública no ano 2000, e a partir dessa data ficou disponível para todos a capacidade de determinação da posição geográfica e de navegação entre quaisquer dois pontos da superfície terrestre. É composto atualmente por uma rede de 24 satélites ativos na órbita próxima da Terra e 3 reservas. É baseado em transmissão e recepção de sinais de radiofrequência em uma faixa alta (1,2 a 1,6 Ghz). 21 Imagem 3: Satélites na Órbita Terrestre Fonte: NASA, 2011 O princípio básico da navegação GPS é calcular a distância entre os satélites e o usuário. A partir das coordenadas dos satélites é possível calcular as coordenadas da antena do usuário no mesmo sistema de referência por satélites. Da perspectiva geométrica, três distâncias em planos diferentes (X, Y e Z) já seriam suficientes. Os satélites trocam sinais com os dispositivos móveis a fim de dizer qual sua localização na superfície da Terra, medindo a distância que há do satélite até nós. Más para saber a localização exata são necessários 3 satélites, e mais um para a altitude em relação ao nível do mar, que podemos chamar de Triangulação. Cada um deles se comunicará com seu receptor, mapeando os tempos de resposta. Os tempos anotados em cada satélite dão a sua posição exata. A figura abaixo apresenta como funciona a triangulação: 22 Imagem 4: Triangulação Fonte: Tim Gunther - National Geographic, 2019. As aplicações do GPS são normalmente subdivididas em aplicações terrestres, marítimas e aeroespaciais. Vejamos algumas aplicações do GPS: A. Na topografia, ou seja, levantamentos locais, tanto rurais quanto urbanos, para obter coordenada de pontos utilizados nesses levantamentos, ou nos levantamentos lineares. B. No georreferenciamento de imagens de satélite, destinado ao mapeamento temático, ou o uso dos produtos de sensoriamento remoto como a carta-imagem. C. Atualização de informações cartográficas. D. Atualização do Sistema de Informações Geográficas – SIG 23 7.2.1 Sistema de Informação Geografica(SIG) Os Sistemas de Informação Geográfica são as ferramentas computacionais para geoprocessamento, integrando dados de diversas fontes em bancos de dados georreferenciados. É especializado em adquirir, armazenar, recuperar, transformar e emitir informações espaciais. Uma característica em um SIG é a capacidade de tratar as relações espaciais entre os objetos geográficos, além de armazenar a topologia de um mapa. Para aplicações em análise geográfica e redes, o armazenamento da topologia permite o desenvolvimento de consultas a um banco de dados espacial. Pode-se indicar que um SIG tem os seguintes componentes: interface com usuário, entrada e integração de dados, funções de processamento de gráficos e de imagens, visualização e plotagem, e armazenamento de recuperação de dados, segundo Câmara (2006), organizado sob a forma de um banco de dados geográficos, conforme a figura mostra a seguir. Imagem 5: Arquitetura de Sistemas de Informação Geográfica Fonte: Câmara, 1996. Cada sistema, implementa estes componentes de forma distinta, mas todos os subsistemas citados devem estar presentes num SIG. 24 7.3 Tecnologias para Desenvolvimento O desenvolvimento do projeto georreferenciamento de um objeto móvel irá obter as tecnologias de Tecnologias de localização para dispositivos móveis, linguagem de programação, aplicativo móvel, Web Services e APIs 7.3.1 Tecnologias de localização para dispositivos móveis O princípio básico da navegação GPS é calcular a distância entre os satélites e o usuário. O GPS permite determinar a posição do observador em qualquer lugar sobre a superfície da terra vinte e quatro horas por dia. Porém, os receptores GPS são projetados para operar a céu aberto e seu desempenho depende em grande parte do sinal, pois usa a energia das ondas de rádio para obter os parâmetros de navegação. Por conta disso pode haver interferências no sinal, principalmente em áreas urbanas, onde há uma grande quantidade de prédios. Existem atualmente em desenvolvimento, diversas tecnologias de geolocalização que permitem definir aproximadamente a posição de uma determinada pessoa ou objeto na Terra. Algumas destas técnicas são baseadas em rádio frequência que são utilizadas para localização sem fio. 7.3.1.1 Sinal do GPS em sistemas Internos Ambientes internos dificultam a captação dos sinais GPS, pois estes sinais são reduzidos e sofrem interferência de sinais refletidos, além de chegarem a esses locais tão fracos que impossibilitam a extração das mensagens de navegação e tempo. A diminuição do sinal, devido às paredes, faz com que os receptores tenham grande dificuldade em procurar e identificar os satélites, tornando o processo extremamente lento. Hoje já existem técnicas para se determinar a posição de uma pessoa ou de um objeto, como o que chamamos de Triangulação, que trabalha com as propriedades geométricas dos triângulos e se baseia na observação de localidades. 25 7.3.1.2 Triangulação A triangulação se baseia nas propriedades geométricas dos triângulos, e pode ser dividida em lateração que utiliza medidas para calcular a distância de um objeto em relação a múltiplos pontos de referência, ou angulação partindo- se de medidas de ângulos que são utilizados para determinar a posição de um objeto. A distância de um usuário ao satélite é determinada pelo tempo de propagação do sinal. Para triangular, um receptor GPS mede a distância entre ele à diversos satélites, utilizando o tempo de percurso dos sinais de rádio. Para calcular a medida deste tempo, o GPS precisa de uma sincronização extremamente precisa. Além da distância é necessário saber a posição do satélite no espaço. A seguir temos uma tabela que apresenta algumas das tecnologias de localização que existem hoje baseadas em aparelhos móveis: • WBS - Estação base sem fio. • MS - Mobile Handset (aparelho móvel). Tabela 1: Tecnologias GPS para dispositivos móveis Geolocalização GPS O receptor GPS é embutido no aparelho móvel. AGPS - GPS Assistido Um receptor GPS parcial embutido no MS é auxiliado pela WBS. OTDA - Diferença de tempo observada O MS monitora sinais de pelo menos três WBS e observa a diferença de tempo de chegada do sinal. Fonte: Alessandro, 2003. 7.3.1.3 GPS Assistido Esta tecnologia foi desenvolvida com o propósito de aprimorar asfuncionalidades de localização do GPS em áreas urbanas. Os principais 26 componentes que compõem a tecnologia de GPS Assistido (A-GPS) são, um dispositivo sem fio com um receptor GPS parcial (aparelho móvel), satélites GPS, um servidor AGPS, um receptor GPS estações base (torres de estação telefônica) e uma estação de rádio base no centro de comutação móvel (MSC), conforme apresentado na figura a seguir: 7.3.1.4 GSM O GSM (Global System Mobile Communications ou Sistema Global para Comunicações Móveis) utiliza as torres telefônicas espalhadas pela área. É através dessas torres telefónicas e do sinal que emitem que é possível saber a localização do aparelho e do seu utilizador. Todos os telefones e demais dispositivos móveis atuais possuem a tecnologia de GSM. 7.3.2 Linguagem Web – Java Script É uma linguagem de programação, de script para páginas web. É uma linguagem leve, interpretada e baseada em objetos. Não se deve confundir JavaScript com a linguagem de programação Java. Tanto "Java" quanto "JavaScript" são marcas registradas da Oracle nos Estados Unidos da América e em outros países. No entanto, as duas linguagens de programação possuem sintaxe, semânticas e usos muito diferentes. É atualmente a principal linguagem para programação client-side em navegadores web. Ela é utilizada para controlar o HTML e o CSS para manipular comportamentos na página. 7.3.3 Aplicativos O uso de aplicativos vem crescendo fortemente na população mundial, e tudo graças à internet e dispositivos móveis. A seguir veremos dados de uma pesquisa da empresa Flurry que mostra qual a área de maior interesse dos usuários, ficando em primeiro lugar o interesse por aplicativos de mensagens e interação social. 27 7.3.4 Web Services Um Web Service é utilizado para transferir dados através de protocolos de comunicação para diferentes plataformas, independentemente das linguagens de programação utilizadas por detrás dessas plataformas. Web Service é um tipo de arquitetura de desenvolvimento cujo objetivo é a troca de informações entre duas entidades de software através da internet, utilizando os protocolos de comunicação disponíveis e tornando, assim, o envio e recepção dos dados de um processo já consolidado e conhecido. As entidades de software envolvidas nesse processo de comunicação são aplicações consideradas como servidor quando seu objetivo é prestar um serviço ou fornecer um mecanismo de acesso a um conjunto de dados. Já as aplicações consideradas como cliente têm como objetivo consumir um ou mais serviços disponibilizados pelos servidores. 7.3.4.1 REST O REST (Representational state transfer) significa Transferência de Estado Representacional, tratando-se de uma concepção da arquitetura da Web, ou seja, o REST consiste em razão, regras e validação, que de acordo são efetuadas permitem que o projeto crie interfaces bem definidas, permitindo que as aplicações se comuniquem. Há mais de 20 anos o protocolo HTTP que faz comunicação para sistemas Web é um dos métodos que visam resolver problemas relacionados à semântica quando requisições HTTP eram realizadas 7.3.4.2 JSON JSON (JavaScript Object Notation) é uma estrutura, baseada em texto para armazenar e transmitir dados estruturados. Ao usar uma sintaxe simples, o usuário pode facilmente armazenar qualquer coisa a partir de um único número por meio de Strings, matrizes e objetos usando nada além de uma sequência de texto simples. O usuário também pode alinhar matrizes e objetos, o que lhe permite criar estruturas complexas de dados. Uma vez criada a String JSON, 28 pode-se enviá-la para outra aplicação ou computador, porque se trata de texto simples. E em muitos casos são criptografadas. 7.3.5 APIs A Interface de Programação de Aplicativos (API) é um conjunto padrão de programação, para que tenha fácil acesso a um aplicativo de software ou plataforma Web. Essa API é criada e modificada de acordo ao uso da empresa para colaborar com o produto a ser criado. Por exemplo, como o Google Maps é um dos maiores exemplos de API, através de código, aplicações adaptam-se para melhorias para que seja útil e promissor ao usuário, caso faça o rastreamento de pessoas visualiza-se dentro do aplicativo para saber a localização das pessoas, o desenvolvedor do aplicativo utiliza o código do Google Maps ao ser inserido em um determinado local do aplicativo, com as APIs, os aplicativos se comunicam sem intervenção dos usuários, definindo comportamentos por características de um objeto em uma interface. A API é composta por funções que são fáceis para programação, plug-ins são espelhados pela API, pois aumenta o potencial do programa. 7.3.5.1 Google Maps A Google fornece um conjunto de serviços Web HTTP e disponibiliza algumas APIs para o desenvolvimento de aplicações móveis que necessitem utilizar mapeamento e localização geográfica. A Google Maps Geolocation API por exemplo, fornece dados de localização de torres de celulares e nós de rede WiFi. A Google Maps Geocoding é uma API que possibilita o desenvolvimento de aplicações utilizando o Google Maps, a partir da geocodificação. 29 Imagem 6: Exemplo de utilização da API do Google Maps Fonte: Própria - Aplicativo Google Maps, 2019 A geocodificação é o processo de conversão de endereços em coordenadas geográficas, que podem ser usadas para inserir marcadores em um mapa ou posicionar o mapa. Esta API também possibilita a geocodificação inversa, que é o processo de conversão de coordenadas geográficas em um endereço legível. O serviço de geocodificação inversa da Google Maps Geocoding API também permite que você encontre o endereço de um determinado ID de local. A Google Maps Geocoding API oferece uma maneira direta de acessar esses serviços por meio de uma solicitação HTTP. A seguir listamos alguns conceitos para um melhor entendimento das técnicas que existem hoje para o tratamento de dados geográficos. 30 7.4 Componentes do Sistema O sistema possui dois artefatos que funcionarão de forma integrada, sendo eles o aplicativo móvel juntamente com o rastreador portátil 7.4.1 Componentes Físicos O dispositivo rastreador foi projetado com base no Arduino. Serão apresentados a seguir os componentes essenciais para o funcionamento deste projeto. Cada componente é responsável por uma funcionalidade do sistema. A seguir serão apresentados os componentes 7.4.2 Arduino É um microcontrolador que funciona como uma placa eletrônica sendo uma plataforma de prototipagem eletrônica de hardware livre de placa única, conhecida também como “Hardware Open Source”. Depois de programado, o microcontrolador pode ser usado de forma independente, ou seja, pode ser usado para o desenvolvimento de objetos interativos independentes, pode-se colocá-lo para controlar um robô, uma lixeira, um ventilador, as luzes da sua casa, a temperatura do ar condicionado, pode utilizá-lo como um aparelho de medição ou qualquer outro projeto viável. É um microcontrolador que funciona como uma placa eletrônica sendo uma plataforma de prototipagem eletrônica de hardware livre de placa única, conhecida também como “Hardware Open Source”. Depois de programado, o microcontrolador pode ser usado de forma independente, ou seja, pode ser usado para o desenvolvimento de objetos interativos independentes, pode-se colocá-lo para controlar um robô, uma lixeira, um ventilador, as luzes da sua casa, a temperatura do ar condicionado, pode utilizá-lo como um aparelho de medição ou qualquer outro projeto viável. 7.4.2.1 Arduino Uno O Arduino Uno é uma placa microcontrolador que se baseia através do ATmega328P, contém 14 pinos de entrada e saída digital, sendo 6 pinos que podem ser usados como saídas PWM, 6 entradas analógicas, um cristal de quartzo de 16 MHz, uma conexão USB, um conector de energia, um conector 31ICSP e um botão de reset. Ele contém tudo o que é necessário para suportar o microcontrolador. Basta conectá-lo a um computador com um cabo USB ou ligá-lo com um adaptador de CA-CC ou bateria para começar. Imagem 7: Microcontrolador Arduino UNO Fonte: Arduino Brasil, 2017 "Uno" significa “um” em italiano e foi escolhido para marcar o lançamento do Arduino Software (IDE) 1.0. A placa Uno e a versão 1.0 do Arduino Software (IDE) foram as versões de referência do Arduino, agora evoluindo para versões mais recentes. A placa Uno é a primeira de uma série de placas USB Arduino e o modelo de referência básica para a plataforma Arduino. 32 Imagem 8: Estrutura do Arduino UNO Fonte: Portal Vida de Silício, 2016 7.4.2.2 Componente GPS Gy-NEO6MV2 Esse micro chip é o responsável por capturar as coordenadas de latitude e longitude que serão utilizadas no projeto (Módulo GPS). Ele possui uma antena acoplada que aumenta a sua gama de alcance e melhora o sinal de recepção dos satélites. Imagem 9: Microcontrolador GPS Fonte: Arduino Brasil 33 7.4.2.3 Componente GSM GPRS - GSM SIM 900 Este microcontrolador possui uma antena, e desta forma permite realizar chamadas telefônicas, enviar SMS, além de permitir a conexão com a internet. Com ele é possível enviar alertas informando o estado de um sensor. Imagem 10: Microcontrolador GSM Fonte: Felipe Flop, 2014 7.4.2.4 Componente / Micro SD Este módulo permite fazer leitura e escrita diretamente em um cartão Micro SD para salvar dados de sensores a fim de utilizá-los posteriormente. Para o projeto a ser apresentado, este módulo será utilizado, a fim de guardar as informações das coordenadas espaciais para que possa ser enviada a aplicação mobile posteriormente. 34 Imagem 11: Microcontrolador SD Fonte: Felipe Flop, 2014 7.4.2.5 Bateria / Recarregável Como principal fonte de alimentação para o dispositivo rastreador, é utilizada bateria Li-Íon 3.6v recarregável. A energia cedida para o Arduino é com fonte de alimentação em corrente contínua para que os sensores e atuadores funcionem de forma correta com a bateria ou acumuladores que resultem ótima solução de desempenho, porém o grande problema que o valor não é muito acessível, a duração não é prolongada, baterias viciam ficando mais difíceis serem utilizadas, mais uma das soluções encontradas que através de baterias velhas de aparelhos portáteis e carregadores fazem com que se crie acumuladores que fornecem uma tensão que pode variar entre 7 ou 12 Volts. Imagem 12: Baterias 35 Fonte: Arduino Brasil, 2017 7.4.2.6 Ambiente de Programação do Arduino A programação dos componentes Arduino é realizada a partir do software chamado sketch, na qual será feito upload para a firmware da placa de prototipagem Arduino, através de uma comunicação serial. O sketch feito pelo desenvolvedor dirá à placa o que deve ser executado durante o seu funcionamento. Para o desenvolvimento do software, utiliza-se a linguagem de programação C/C++. O Arduino ainda suporta outras linguagens como Java, Python, Visual Basic, etc. O ambiente de programação pode ser baixado gratuitamente a partir do site oficial do Arduino (http://arduino.cc). Trata-se de um editor de texto, com a área inferior para mensagens, um console para escrita, uma barra de ferramentas com botões para funções comuns e uma série de menus. 36 8 DESENVOLVIMENTO O propósito do projeto é desenvolver um sistema de baixo custo que realiza o monitoramento de um objeto móvel com a utilização da plataforma Arduino que irá conter os módulos de conexão com a internet (GSM) e localização (GPS), através destes módulos e integrando com a API do Google Maps para apresentar as informações ao usuário no mapa através do smartphone Android. 4.1 Arquitetura do Projeto A arquitetura do projeto foi feita da seguinte forma: A. Objeto Móvel: responsável por conter o rastreador e informações do objeto ou pessoa em que está hospedado, com isso, no momento em que o rastreador obter uma nova latitude e longitude, o objeto móvel fará a comunicação com o micro serviço para informá-lo a sua nova localização e passar as informações do objeto em que o rastreador está hospedado. O objeto móvel é feito pelos seguintes artefatos: o Arduino UNO: artefato que é responsável por realizar o tratamento de dados dos retornos de informações dos microcontroladores: GSM, GPS, micro SD e bateria e pela comunicação dos dados com o micro serviços. ▪ Microcontrolador GSM: responsável por obter internet 3G ou 4G para que seja possível a comunicação do Arduino (objeto móvel) com micro serviço. ▪ Microcontrolador GPS: responsável por obter dados de localização para que o Arduino (objeto móvel) envie para o micro serviço. ▪ Microcontrolador micro SD: responsável por armazenar a latitude e longitude do GPS, utilizado devido a limitação do armazenamento do Arduino (objeto móvel). 37 ▪ Bateria: responsável por deixar ativo o Arduino (objeto móvel) com maior durabilidade, sem a necessidade de ficar conectado em uma fonte de energia. B. Micro serviço (Web Service): responsável pela comunicação com o objeto móvel para obter dados da localização (Latitude e Longitude), informações do objeto em que está sendo rastreado e o usuário do aplicativo mobile responsável pelo objeto móvel. No momento em que o micro serviço obtém estes dados, inicialmente o micro serviço faz comunicação com a modelagem de dados para validar o usuário responsável pelo objeto móvel e por fim retorna ao aplicativo móvel as informações obtidas. C. Aplicativo mobile: responsável por duas etapas: • Realizar cadastro de usuário de acesso ao aplicativo e objetos móveis que pertencem ao usuário cadastrado. • De acordo com o usuário que está acessado é feito a comunicação com o micro serviços para receber os informações e localização do objeto que pertence ao usuário, com isso é apresentado ao usuário a localização do objeto que está sendo rastreado e suas informações no aplicativo mobile, como por exemplo se for uma pessoa apresentar informações como o nome, idade e estado civil, ou se for um objeto apresentar informação como o tipo de objeto que está sendo monitorado. D. Modelagem de Dados: responsável pelo cadastro de usuário que utiliza o aplicativo mobile e por retornar ao micro serviço o objeto móvel que o usuário possui acesso. 8.1 Justicativa Este projeto visa possibilitar o rastreamento de um objeto móvel a partir de uma aplicação mobile para smartphone Android, que seja de baixo custo, que possua uma maior precisão na localização apresentada no mapa. 38 8.2 Premissas A aplicação móvel é voltada somente para dispositivos móveis Android. Além disso a API utilizada para o desenvolvimento será API Google Maps para mostrar a localização do objeto em tempo real. 8.3 Restrições O sistema necessita de internet móvel como GSM, 3G e 4G para que funcione corretamente. 8.4 Diagrama casos de uso Inicialmente foi criado o diagrama de caso de uso a fim de definir as funcionalidades do sistema, para a criação e implementação de métodos e classes. Na figura abaixo podemos ver o diagrama com as funcionalidades do sistema em geral, tanto do aplicativo mobile quanto do dispositivo rastreador, artefatos que fazem parte do sistema. O caso de uso, apresenta um cenário que o sistema pode ser utilizado, onde uma pessoa pode monitorar um objeto móvel. Imagem 13: Diagrama de Caso de Uso Fonte: Própria, 2019 A partir do caso de uso serão implementados os métodos, classes e estruturas de objetos para a execução do sistema. 39 8.5 Modelagem de dados Para a criação do modelo ER será utilizada a ferramenta dwaio, a fim de listar as entidades, atributos, definição de relacionamento entre as tabelas, chaves primárias,etc. A modelagem de dados foi essencial para este sistema, facilitando o gerenciamento do projeto. Na figura abaixo é apresentado o modelo ER, criado para o projeto a ser apresentado. Imagem 14: Modelo Entidade Relacionamento do Projeto Fonte: Própria, 2019 8.6 Identificação dos Requisitos Funcionais Existem diversas técnicas para identificar requisitos, dentre estas a especificação dos cenários (Bronze, 2014). Esta abordagem é mais informal e torna possível imaginar e visualizar o comportamento de um sistema, assim como da interação que é esperada por ele. Para ilustrar qual o cenário do Sistema de Rastreamento, é apresentada a figura com a visão geral do sistema: 40 8.7 Especificação dos Requisitos A prototipação dos sistemas foi criada para que os desenvolvedores pudessem visualizar as funcionalidades do aplicativo e o dispositivo móvel localizador, facilitando o entendimento das funcionalidades do sistema em geral. O protótipo também possibilitou ao desenvolvedor criar um modelo do aplicativo, retratando a interação com o dispositivo rastreador. As principais funcionalidades do sistema são: • O cadastro do usuário usará o dispositivo rastreador. Esse cadastro permite que o usuário solicite a localização em tempo real a partir do aplicativo móvel. • O cadastro de ID único do dispositivo rastreador. Este cadastro permite definir qual dispositivo será rastreado. • Cadastro de limitação geográfica (cerca eletrônica). Este cadastro é opcional, caso o usuário queira delimitar uma “área segura”, onde ele sabe que pode monitorar um determinado objeto móvel e determinar o distanciamento máximo que este objeto pode estar. • Aviso no aplicativo móvel do tipo PUSH. Esta funcionalidade é para quando o dispositivo rastreador estiver se deslocando fora da “área segura”, que foi delimitada pelo usuário. • Apresentação de um mapa com uma marcação (tipo bandeira), a partir das coordenadas da localização do dispositivo de rastreamento, sempre que for solicitado pelo aplicativo. • Todos os cadastros realizados são armazenados em um banco de dados. O envio e recebimento das coordenadas é realizado a partir da Internet. A conexão com a internet é fundamental para a utilização do sistema. Por conta da utilização de uma aplicação móvel, serão utilizados Web Services, utilizando o modelo RESTful para padronização do protocolo HTTP, permitindo uma maior segurança no envio e recebimento das informações de um dispositivo para o servidor. Através dos cenários definidos, os requisitos funcionais e não funcionais, assim como a prototipação, serão discutidos no tópico a seguir, na criação do diagrama de caso de uso. 41 9 CONSIDERAÇÕES FINAIS Foi possível perceber ao longo do trabalho a grande importância da escolha do processo para o desenvolvimento do sistema. Conclui-se que os processos para o desenvolvimento de software são métodos que auxiliam na organização e planejamento das atividades relacionadas a criação e construção, bem como a entrega e manutenção de sistemas de software. As etapas da engenharia de software, seus métodos, modelos, princípios e heurísticas são fundamentais para que seja possível criar e desenvolver um bom projeto, além de atribuir responsabilidades, organizando e documentando todas as etapas do projeto. Através das pesquisas foi possível encontrar ferramentas e APIs como o do Google Maps, que auxiliaram na implementação dos dispositivos que compõe o sistema. Conforme visto neste trabalho, o Google Maps API foi a principal ferramenta a ser utilizada para o desenvolvimento do aplicativo, pois fornece classes e métodos permitindo desenvolver aplicações que convertem endereços em coordenadas geográficas de latitude e longitude. As coordenadas permitem apresentar no mapa a localização exata do objeto, ao usuário. 42 10 CONCLUSÃO Foi possível perceber ao longo do trabalho a grande importância da escolha do processo para o desenvolvimento do sistema. Conclui-se que os processos para o desenvolvimento de software são métodos que auxiliam na organização e planejamento das atividades relacionadas a criação e construção bem como a entrega e manutenção de sistemas de software. As etapas da engenharia de software, seus métodos, modelos, princípios e heurísticas são fundamentais para que seja possível criar e desenvolver um bom projeto, além de atribuir responsabilidades, organizando e documentando todas as etapas do projeto. Também foi possível concluir que existem hoje diversas técnicas e métodos, além do Google Maps, como por exemplo, na área de geoprocessamento, para o tratamento de dados espaciais, a fim de representar os dados em um mapa geográfico, sendo a mais utilizada, os SIG (Sistemas de Informações Geográficas), conforme visto neste trabalho. Além dos conceitos, pudemos encontrar ferramentas de desenvolvimento, manipulação de dados, utilização do padrão de protocolos HTTP para envio e recebimento de dados via web, além dos microcontroladores Arduino que foram implementados e testados na segunda fase do projeto 43 11 FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS – APS 44 12 REFERENCIAS LEE, V.; SCHNEIDER, H. SCHELL, R. Aplicações móveis: arquitetura, projeto e desenvolvimento. São Paulo: Pearson, 2005. CÂMARA, Gilberto; Davis, CLODOVEU; Queiroz, Gilberto Ribeiro; CASANOVA, Marco. Bancos de Dados Geográficos. MundoGEO, Curitiba, 2005.Disponível em:<http://www.dpi.inpe.br/gilberto/livro/bdados/capitulos.html > Acesso em 15 de Maio de 2019. ASSAD, E.D.; SANO, E.E. Sistemas de Informações Geográficas - Aplicações na Agricultura. Brasília, EMBRAPA, 1998. OLIVEIRA, Júlio César. Conceitos Básicos sobre Posicionamento por Satélites. Artificiais. Julho,2011.Disponível em:< http://www.dsr.inpe.br/vcsr/files/Apresentacao_GPS.pdf > Acesso em 24 de abril de2019. SEGANTINE, P. C. L. 1999. GPS – Sistema de Posicionamento Global. Apostila didática da Universidade de São Paulo Escola de Engenharia de São Carlos, Departamento de Transportes. P 181. Souza ,Fábio. Arduino UNO.2013. Disponível em: < https://www.embarcados.com.br/arduino-uno/ > Acesso em 22 de março de 2019. FILHO, Wilson de Pádua Paula. Engenharia de Software Fundamentos, Métodos e Padrões. Editora LTC. 3a Edição, 2009. REZENDE, Denis Alcides. Engenharia de Software e Sistema de Informação. Editora. BRADSPORT, 3a edição, 2005. Disponível em: < www.bradsport.com.br > Acesso em 12 de maio de http://www.dpi.inpe.br/gilberto/livro/bdados/capitulos.html http://www.dsr.inpe.br/vcsr/files/Apresentacao_GPS.pdf https://www.embarcados.com.br/arduino-uno/ http://www.bradsport.com.br/ 45 LIVRO: Engenharia de Software uma abordagem profissional 7° Edição de Roger S. Pressman. .
Compartilhar