• Nenhum resultado encontrado

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL UNIJUÍ. DCEEng DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS AILTON PIZZUTI DO AMARAL

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL UNIJUÍ. DCEEng DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS AILTON PIZZUTI DO AMARAL"

Copied!
67
0
0

Texto

(1)

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL – UNIJUÍ

DCEEng – DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

AILTON PIZZUTI DO AMARAL

PROTÓTIPO DE APLICAÇÃO MÓVEL PARA GERENCIAMENTO, IDENTIFICAÇÃO E LOCALIZAÇÃO DE PRESTADORES DE SERVIÇOS

Ijuí, 2014

(2)

AILTON PIZZUTI DO AMARAL

PROTÓTIPO DE APLICAÇÃO MÓVEL PARA GERENCIAMENTO, IDENTIFICAÇÃO E LOCALIZAÇÃO DE PRESTADORES DE SERVIÇOS

Trabalho de Conclusão de Curso apresentado ao Curso de Graduação de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng) da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (Unijuí), como requisito para obtenção do título de Bacharel em Ciência da Computação.

Orientador: Prof. Me. Marcos Ronaldo Melo Cavalheiro

Ijuí, 2014

(3)

PROTÓTIPO DE ALICAÇÃO MÓVEL PARA O GERENCIAMENTO, IDENTIFICAÇÃO E LOCALIZAÇÃO DE PRESTADORES DE SERVIÇOS

AILTON PIZZUTI DO AMARAL

Trabalho de Conclusão de Curso apresentado ao Curso de Graduação de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng) da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (Unijuí), como requisito para obtenção do título de Bacharel em Ciência da Computação.

__________________________________________ Orientador: Prof. Me. Marcos Ronaldo Melo Cavalheiro

BANCA EXAMINADORA

__________________________________________ Prof. .

Ijuí, 2014

(4)

Dedico este trabalho primeiramente a DEUS, a minha mãe e meus irmãos, que são a razão de minha existência, aos colegas e professores que como eu, dedicam-se incansavelmente na busca por soluções práticas e criativas para os problemas a nós apresentados e que se fazem necessários a vida humana.

(5)

AGRADECIMENTOS

Agradeço primeiramente a Deus pelas oportunidades que me disponibilizou em minha vida, pela saúde e liberdade que me possibilitou, pela família e amigos que colocou em minha vida, e que graças a isso me tornou o Ser Humano que sou hoje.

Agradeço à minha mãe Ana Mari Pizzuti, que é a razão da minha vida, sempre presente e com sua sabedoria, soube me incentivar e orientar nas horas difíceis, e com quem posso dividir todas as realizações da minha vida.

À minha irmã Letícia Pizzuti do Amaral, que sempre está presente em minha vida, tanto nas horas boas, quanto nas horas em que tudo parecia complicado, sempre me apoiando e incentivando e por várias vezes me demonstrando que tudo tem solução.

Ao meu irmão Rodrigo Pizzuti do Amaral, pelos vários momentos de parceria e cumplicidade, pela amizade e por estar sempre presente em todos os momentos da minha vida, mesmo sendo mais novo, por muitas vezes servido de exemplo para as minhas escolhas.

A todos os meus familiares, que sempre foram o meu porto seguro e que me ajudaram e me ajudam, com o apoio e incentivo que me são necessários em minha vida.

Aos amigos sempre presentes, que me mantem motivado a atingir os meus objetivos e realizações, com muito apoio, trabalho e determinação.

Ao Professor Me. Marcos Ronaldo Melo Cavalheiro, por acreditar em meu potencial na elaboração deste trabalho e por ter confiado na minha capacidade, pelo incentivo ao meu desenvolvimento como Ser Humano em todo o período do Curso.

E por fim, mas não menos importante, aos demais professores e colegas de Curso, pelo apoio e incentivo e pela oportunidade de troca de experiências que me foi disponibilizado durante os anos que fiz parte desta Universidade.

(6)

RESUMO

O grande aumento do comércio eletrônico e o surgimento de novas tecnologias móveis, bem como a evolução dos aparelhos celulares, o surgimento de smartphones, tablets e equipamentos com o Sistema operacional Android, possibilitou que as pessoas possam estar a cada dia que passa, mais conectadas umas com as outras. As relações sociais atingiram um novo patamar e também trouxeram consigo a possibilidade de que o comércio, seja ele de produtos ou serviços, torne-se cada vez mais dinâmico e rápido. Com isso, surgiu a necessidade de que se tenha inúmeras alternativas e aplicações com o objetivo de sanar a necessidade dos clientes manterem contato direto com o seu fornecedor, seja de bens ou serviços, no intuito de manter a tão sonhada proximidade entre ambos. O presente trabalho propõe a construção de um protótipo de aplicação para o Sistema Operacional Android, que se utilize da computação Ubíqua e que possibilite a aproximação tão desejada na atual conjuntura do comércio eletrônico de serviços e possibilite o uso das novas tecnologias existentes para a criação de uma ponte entre clientes e seus possíveis prestadores de serviços. Palavras-chave: Sistemas de tecnologia móvel. Aplicativos móveis. Computação Ubíqua. Soluções Móveis. Aplicativo Android.

(7)

ABSTRACT

The large increase of electronic trading and the appearing of new mobile technologies both cell phones evolution, the appearing of smartphones, tablets and equipment with Android operating system, enabled that people can to be each passing day, more connected each other. Social relations adopted a new baseline and also brought with it the possibility of the trade, it be products or services, become increasingly dynamic and fast. Therewith, appeared the necessity that has numerous alternatives and applications with the objective of remedy the customers need to maintain direct contact with their provider, of goods or services in intention to maintain as dreamed proximity between both. The present study proposes the construction of an application prototype to the Android Operating System that uses the Ubiquitous computing that enables the approximation as desired in the present conjecture of electronic trading services and enable the use of new technologies available for creating a connection between clients and their possible provider service.

Keywords: mobile technology systems. Mobile applications. Ubiquitous Computing. Mobile Solutions. Android App.

(8)

LISTA DE ILUSTRAÇÕES

Figura 1 – Camadas do software Android ...21

Figura 2 – Ciclo de Vida de Aplicação Android ...26

Figura 3 – Classes Java ...27

Figura 4 – Arquivos XML ...27

Figura 5 – Aplicativo Apontador postos ...32

Figura 6 – POA app ...33

Figura 7 – POA app ...33

Figura 8 – Identificação de Atores ...41

Figura 9 – Caso de Uso Cadastrar Prestador de Serviços...45

Figura 10 – Caso de Uso Cadastrar Cidades ...46

Figura 11 – IDE Eclipse Android Developer Tools ...50

Figura 12 – SGBD SQLite Expert Personal ...53

Figura 13 – Tela Inicial do Protótipo ...56

Figura 14 – Tela do Cadastro. ...58

Figura 15 – Tela de Pesquisa. ...58

Quadro 1 – AndroidManifest.xml . ...28

Quadro 2 – Requisito funcional 1 – Visualizar Prestadores de Serviços . ...38

Quadro 3 – Requisito funcional 2 – Cadastrar Prestadores de Serviços . ...38

Quadro 4 – Requisito funcional 3 – Cadastrar Avaliação do Prestador de Serviço . ...39

Quadro 5 – Requisito funcional 4 – Visualizar no Mapa a Localização do Prestador de Serviços . ...39

Quadro 6 – Cenários Primários . ...40

Quadro 7 – Cenários Secundários. ...41

Quadro 8 – Identificação dos Casos de Uso . ...43

Quadro 9 – Caso de Uso Cadastrar Prestador de Serviços ...43

Quadro 10 – Caso de Uso Cadastrar Cidades ...44

Quadro 11 – Caso de Uso Pesquisar Prestador de Serviços ...44

Quadro 12 – Caso de Uso Registrar Avaliações dos Prestadores de Serviços ...45

Quadro 13 – Arquivo activity_main.xml ...56

(9)

LISTA DE TABELAS

Tabela 1 – Indicadores de 2013 de Dispositivos Móveis - Anatel ...17

Tabela 2 – Ciclo de Vida de Aplicativos Android...24

Tabela 3 – Tabela de Cidades - SGBD. ...47

Tabela 4 – Tabela de Categorias - SGBD. ...47

Tabela 5 – Tabela de Prestadores de Serviços - SGBD. ...47

Tabela 6 – Tabela de Ocorrências - SGBD. ...47

(10)

LISTA DE ABREVIATURAS E SIGLAS

2D - Two Dimensional 3D - Three Dimensional 3G - 3rd Generation

ADT - Android Development Tools

ANATEL - Agência Nacional de Telecomunicações AOSP - Android Open Source Project

API - Application Progamming Interface EDGE - Enhanced Data Rates for GSM Evolution GPRS - General Packet Radio Service

GPS - Global Positioning System HTC - High Tech Computer

IBM - International Business Machines IDE - Integrated Development Environment JDK - Java Development Kit

JVM - Java Virtual Machine

MMS - Multimidia Messaging Service OHA - Open Handset Alliance

PDA - Personal Digital Assistance

PK - Primary Key

PPB - Processo Produtivo Básico

RDBMS - Relational Database Management System RIM - Research in Motion

SD - Secure Digital

SDK - Software Development Kit

SGBD - Sistema Gerenciador de Banco de Dados SMS - Short Message Service

SO - Sistema Operacional

SOAP - Simple Object Access Protocol SQL - Structured Query Language TCC - Trabalho de Conclusão de Curso UI - User Interface

UML - Unified Modeling Language URL - Uniform Resource Locator USB - Universal Serial Bus VM - Virtual Machine

(11)

SUMÁRIO INTRODUÇÃO ...11 1 REFERENCIAL TEÓRICO ...16 1.1 DISPOSITIVOS MÓVEIS ...16 1.2 ANDROID ...19 1.2.1 Conceitos Fundamentais ...20

1.2.2 Ciclo de Vida de Uma Aplicação Android ...23

1.2.3 Estrutura de uma Aplicação Android ...26

1.2.4 Mapas e Localização ...29

1.2.5 Publicando uma Aplicação ...30

1.3 APLICATIVOS SIMILARES ...31

1.3.1 Apontador Postos ...31

1.3.2 POA app ...32

2 MODELAGEM DO SISTEMA ...34

2.1 VISÃO GERAL DO SISTEMA ...34

2.2 UML...35 2.3 ANALISE DE REQUISITOS... 36 2.3.1 Requisitos Funcionais ...37 2.3.2 Requisitos Não-Funcionais ...39 2.3.3 Cenários...40 2.3.4 Identificação de Atores ...41 2.3.5 Casos de Uso ...42

2.3.6 Diagrama de Casos de Uso ...45

2.3.7 Projeto Lógico das Tabelas do Sistema ...46

3 DESENVOLVIMENTO DO SISTEMA ...49

3.1 FERRAMENTAS E IMPLEMENTAÇÕES ...50

3.1.1 Eclipse ...50

3.1.2 ADT Plugin ...51

3.1.3 Android SDK ...52

3.1.4 Configurando o Android Virtual Device (AVD) ...52

3.1.5 Banco de Dados SQLite ...53

3.1.6 Linguagem de Programação Java ...54

3.2 IMPLEMENTAÇÃO DO PROTÓTIPO ...55

CONSIDERAÇÕES FINAIS ...61

(12)

INTRODUÇÃO

Com o crescente aumento do comércio eletrônico, dos mais diversos produtos e serviços, bem como o surgimento de novas tecnologias móveis, possibilitando a evolução dos aparelhos celulares e o surgimento de smartphones, tablets, equipamentos e acessórios que utilizam-se do Sistema operacional Android e outros tantos Sistemas Operacionais, possibilitou que as pessoas possam estar a cada vez mais conectadas entre si e dentre os diversos equipamentos a sua disposição no dia a dia.

As relações sociais atingiram um novo patamar e também trouxeram consigo a possibilidade de que o comércio, seja ele de produtos ou serviços, torne-se cada vez mais dinâmico e rápido. Com isso, surgiu a necessidade de que se tenha inúmeras alternativas e aplicações com o objetivo de sanar a necessidade dos clientes manterem contato direto com o seu fornecedor, seja de bens ou serviços, no intuito de manter a tão sonhada proximidade entre ambos.

Segundo Steinbuhler (2004, p. 12), a internet modificou o modo pelo qual as pessoas se comunicam, fazem negócios e administram o seu dia-a-dia. Com o passar do tempo a responsabilidade e a obrigação das pessoas em solucionar questões em um curto espaço de tempo vem aumentando, a pressão pela busca de melhores resultados faz com que haja pouco tempo para que as mesmas possam se atualizar em quesitos principalmente tecnológicos, a tendência é que fiquem cada vez mais focadas em suas atividades próprias.

As novas tecnologias possibilitaram às pessoas a realizarem mais coisas ao mesmo tempo e também reduziram o tempo necessário para se realizar determinadas obrigações. Conforme Lechetta (2010, p. 15), o mercado de celulares está crescendo cada vez mais e com este crescimento, surgem inúmeros desafios e principalmente inúmeras possibilidades de negócios.

É comum nos dias de hoje, no momento de se adquirir novos produtos e serviços, o futuro cliente não consegue realizar uma análise criteriosa sobre o produto ou serviço que está prestes a adquirir, pois em muitos casos não dispõe do tempo necessário para que possa realizar uma pesquisa qualificada e assim torna este fato um verdadeiro tormento em seu dia-a-dia. Com isso, este potencial cliente visa verificar apenas algumas funcionalidades do

(13)

produto, pouco analisa suas vantagens e possíveis desvantagens, tão pouco analisa o profissional que lhe prestará o serviço, seguindo muitas vezes indicação de outro cliente. Portanto, resumindo assim, o seu campo de visão sobre determinado produto e muito das vezes optando pela escolha prática e não pelo critério qualidade ou custo benefício do produto ou serviço oferecido.

O trabalho desenvolvido propôs a construção de um protótipo de aplicação para o Sistema Operacional Android, que se utiliza da computação Ubíqua e que possibilite a aproximação tão desejada na atual conjuntura do comércio eletrônico de serviços e possibilite o uso das novas tecnologias existentes para a criação de uma ponte entre clientes e seus possíveis prestadores de serviços.

Mais da metade da população mundial possui algum tipo de dispositivo móvel ou tablet que utiliza um Sistema Operacional e dentre eles o Android. De acordo com a Gartner (2011), mais de 67 milhões de aparelhos com sistema operacional Android foram vendidos em todo o mundo, ou seja, mais de 22% do mercado mundial. O Sistema Operacional Android é para aplicativos móveis e baseia-se em Linux, desenvolvido pelo Google com parceria da Open

Handset Alliance (OHA), utiliza a linguagem Java para desenvolvimento de suas aplicações, e

um dos seus objetivos é definir uma plataforma única e aberta para deixar os consumidores mais satisfeitos com o produto final.

As empresas de hoje estão cada vez mais dependentes de novas tecnologias e novas formas de realizarem seus objetivos e metas. Cada vez mais se faz necessário ferramentas capazes de auxiliar o profissional na obtenção de novos clientes para o seu negócio, e como não podem ser diferentes, as empresas que desejam se aproximar cada vez mais dos seus clientes devem sem sombra de dúvida utilizar-se das mais novas e melhores ferramentas e tecnologias disponíveis no mercado.

Os tempos mudaram para o comércio e o que impulsionou essas mudanças é o fato de que o consumidor adotou a Internet e todas as inovações tecnológicas recentes como canal de pesquisa e de compras. A organização que deseja estar à frente de sua concorrência e mais próxima desta nova realidade, bem como ser a referência aos seus clientes, fornecedores e colaboradores deve dominar este canal e principalmente estar inserido neste novo contexto do comércio mundial.

(14)

O comércio eletrônico vem crescendo a níveis inacreditáveis e a cada ano que passa, novas empresas entram neste mundo competitivo. Infelizmente o que podemos perceber, é que em sua grande maioria as empresas que trabalham com as ferramentas da internet e suas tecnologias, em sua maioria, comerciante de produtos dos mais variados e enquanto isso os prestadores de serviço, ficam de fora deste nicho de mercado pouco explorado por nossas empresas prestadoras de serviço.

Dados da Anatel indicam que o Brasil possui hoje, cerca de 272,4 milhões de celulares, ou seja, 136,99 celulares por cada 100 habitantes. Somente no mês de janeiro/2014, foram adquiridas 1,253 milhões de novas linhas, sendo que foi superior ao mesmo período do ano passado em cerca de 450 mil. Estes números comprovam que existem somente do país mais de um celular por habitante, e a tendência segundo apontam os especialistas é de que este número só aumente nos próximos anos.

Estudos indicam também que a principal função da internet continua a ser a de auxilio à pesquisa. A atual crise econômica apenas reforçou essa utilidade, com os utilizadores a desenvolverem as suas capacidades de busca pelos melhores preços, por promoções e a compararem sistematicamente produtos. E espera-se que este padrão de comportamento se mantenha, pelo menos enquanto a situação financeira não registrar melhorias visíveis.

Sendo assim, é imprescindível que as empresas e profissionais da área de serviços, se adaptem a essa nova realidade, sob pena de ficarem a mercê deste novo mercado que surge no horizonte e que se não estiverem preparados para as novas exigências destes novos tipos de

clientes, poderão ficar de fora e com isso perderem grandes oportunidades de negócio.

O presente trabalho pretende apresentar um protótipo de aplicativo móvel desenvolvido para a Plataforma Android, que atenda o propósito de gerenciar e dinamizar o comércio eletrônico das empresas e prestadores de serviços, tanto via internet, quanto telefonia móvel, possibilitando as empresas, agilizar o atendimento das necessidades de seus clientes, fornecedores e colaboradores, mantendo uma proximidade ainda maior com os potenciais clientes disponíveis na grande rede, onde receberá solicitação dos potenciais clientes para consulta dos prestadores de serviços mais próximos a localização do solicitante, assim, fazendo a divulgação dos prestadores de serviços disponíveis.

(15)

O aplicativo proposto neste trabalho tem como objetivo facilitar a vida do consumidor, provando ser vantajoso para o mesmo e também para as empresas e prestadores de serviços, pois terão suas marcas visualizadas e compartilhadas por milhares de pessoas.

Num primeiro momento realizou-se a pesquisa e compreensão de todo o processo de gerenciamento das informações que envolvem o comércio eletrônico das empresas, bem como o estudo e análise detalhadamente das ferramentas que constituem um sistema responsável por realizar transações comerciais via internet e as abordagens e soluções similares disponíveis no mercado e as ferramentas necessárias para a construção do aplicativo móvel. Com isso poderemos definir o escopo do aplicativo e implementar os conhecimentos adquiridos, bem como todas as ferramentas necessárias para a sua utilização, testando e validando o desenvolvimento do sistema, por fim, pretendemos documentar o desenvolvimento e os resultados obtidos.

Com os devidos questionamentos, tornou-se possível propormos inúmeras soluções para os problemas encontrados e assim compreender melhor tudo o que envolve o processo de desenvolvimento de um sistema para uso em comércio eletrônico, bem como todas as ferramentas necessárias para auxiliar neste processo.

Após a determinação do tema a ser abordado, realizou-se um estudo sobre a plataforma Android, através de pesquisas em artigos, livros e internet, para que fosse possível estabelecer um referencial teórico sobre o assunto abordado. O segundo passo, o levantamento bibliográfico, os conceitos, funcionamentos, e como se daria o desenvolvimento, bem como a leitura da documentação encontrada.

O passo a seguir foi responsável pela descrição e detalhamento do referencial teórico que faz parte da pesquisa, com a filtragem das informações coletadas e posteriormente o estudo de todas as ferramentas necessárias para o desenvolvimento do protótipo proposto e que deram suporte à solução apresentada.

O quarto passo foi responsável pela modelagem e prototipação, bem como a realização do projeto e desenvolvimento do protótipo em si, levantamento de requisitos, identificação dos atores presentes no sistema, criação de casos de uso, da modelagem dos diagramas. Em seguida foi iniciado o desenvolvimento da aplicação para a plataforma Android, utilizando a

(16)

linguagem de programação Java, e posteriormente serão realizados testes que servirão para validar as implementações com a construção do texto e finalização do trabalho final ser apresentado.

Neste capítulo são apresentados os elementos já formulados no projeto de pesquisa, tal como delimitação do problema, justificativa, objetivos da pesquisa e metodologia utilizada para desenvolvimento do trabalho. No capítulo 1 serão apresentados o referencial teórico utilizado como material base para o desenvolvimento do trabalho proposto e os aplicativos encontrados que são semelhantes ao que será desenvolvido com objetivo de fundamentar e auxiliar o desenvolvimento do trabalho. O capitulo 2 apresenta a arquitetura e modelagem do sistema, como o modelo de desenvolvimento, uma visão geral do sistema, levantamento de requisitos, casos de uso e diagramas utilizados. No capitulo 3 será descrita a implementação do aplicativo e os passos para o desenvolvimento do mesmo propriamente dito, além disto são apresentadas as ferramentas utilizadas para a realização do mesmo, através de uma explanação sobre as tecnologias utilizadas, com explicação do código fonte e imagens do sistema funcionando. Logo após são apresentadas as considerações finais do trabalho realizado e posteriormente as conclusões do desenvolvimento e as sugestões de trabalhos futuros para o aperfeiçoamento do protótipo.

(17)

1 REFERENCIAL TEÓRICO

Apresenta-se neste capítulo as principais referências utilizadas para a fundamentação da pesquisa realizada e que dão suporte às soluções apresentadas, estatísticas, e os conceitos sobre as tecnologias que foram utilizadas no decorrer deste trabalho. Serão demonstrados alguns aplicativos já existentes e que utilizam dos mesmos conceitos desenvolvidos neste projeto.

1.1 DISPOSITIVOS MÓVEIS

Com o crescente mercado de dispositivos móveis, surgem inúmeras oportunidades e segundo Lecheta (2010, p. 19) o mercado corporativo também está crescendo muito, e diversas empresas estão buscando incorporar aplicações móveis a seu dia-a-dia para agilizar seus negócios e integrar as aplicações móveis a seus sistemas de back-end.

Certamente o dispositivo móvel tem essa vantagem, pois pode ser carregado com inúmeros tipos de conteúdos dos mais variados possíveis e está acessível em qualquer lugar, com dimensões reduzidas e possibilitando o acesso à Internet e com funcionalidades estendidas por meio de programas executados em seu sistema operacional. (SENAC, 2007).

O que torna os dispositivos móveis tão indispensáveis nos dias de hoje é o fato do acesso às informações em tempo real, de qualquer lugar e a qualquer momento, tornando este tipo de dispositivo uma ferramenta atrativa e essencial para as tarefas do dia-a-dia.

Segundo Zambarda (2010, p. 18), o primeiro aparelho a reunir o que concebe um telefone inteligente hoje foi o Blackberry, lançado em 2002 pela RIM. O Blackberry foi revolucionário porque ao contrário de outros fabricantes de celulares, a RIM investiu apenas na melhoria de seu único modelo, melhorando seu desempenho e agradando principalmente o público executivo que gosta de celulares complexos, mas ainda preso aos botões.

(18)

As grandes mudanças de paradigmas no desenvolvimento e utilização destes dispositivos ocorreram em meados de 2007, quando a Apple lançou o Iphone, com sua tela de toque intuitiva e assim ocorreu o que até hoje é considerado a maior revolução tecnológica depois do surgimento da internet. O Iphone era fácil de usar, agradável para navegar e com um visual muito mais elegante que todos os seus antecessores (ADKINS, 2011).

Logo, novas empresas do ramo de tecnologia perceberam o grande nicho de mercado que se apresentava e empresas como a Google lançaram seus primeiros sistemas operacionais específicos para dispositivos móveis e neste caso em específico, nos referimos ao Android que foi lançado ainda em 2007 e que com a parceria realizada entre a empresa e a Motorola que o sistema operacinal ganhou adeptos e simpatizantes em maior numero.

Um dos mais recentes Sistemas Operacionais para dispositivos móveis é o Windows Phone, com uma abordagem completamente diferente para sua interface, acabou conseguindo evitar a disparada da Apple e Google e assim segundo (MCCARTY, 2011), encontrar o sucesso em seu próprio valor e não imitando os outros, pois o fator determinante do sucesso para smartphones ao longo dos anos, não tem sido apenas a sua capacidade de executar bem, mas também a capacidade de dar acesso a recursos estendidos através de aplicativos de terceiros.

Conforme Steinbuhler (2004, p. 22) nos demonstra, o e-business e o e-commerce tem aumentado a velocidade e a facilidade das transações comercias e, como resultado, a competição tem sido intensa. Quando pensamos nisso, logo nos vem a mente os exemplos de pessoas que da noite para o dia, tornaram-se grandes milionários do mundo da tecnologia, atingindo faturamentos fora do comum em seus negócios, muitos deles iniciados em garagens ou fundo de quintais.

Dados divulgados pela Agência Nacional de Telecomunicações, a Anatel, diz que o Brasil fechou o ano de 2013 com cerca de 271,10 milhões de linhas ativas na telefonia móvel, conforme demonstrado na tabela 1 abaixo.

Tabela 1 – Indicadores de 2013 de Dispositivos Móveis TABELA DE INDICADORES - ANATEL

(19)

EXPANSÃO DO SETOR

Total de telefones milhões 315,8

Densidade total de telefones telefones total / 100 habitantes 158,9

SERVIÇO TELEFONICO FIXO COMUTADO USO INDIVIDUAL (STFC)

Acesso fixo instalado 1 milhões 44,4

Densidade telefônica instalada 1 acesso instalado / 100

habitantes 22,3

Acesso fixo em serviço 2 milhões 44,7

Densidade telefônica em serviço acesso serviço / 100 habitantes 22,5

Taxa de digitalização da rede local % 99,9

SERVIÇO TELEFÔNICO FIXO COMUTADO USO PUBLICO (STFC - TUP)

Telefone de Uso Público mil 875,7

Densidade Telefone de Uso Público telefones / 1000 habitantes 4,4

SERVIÇO MÓVEL PESSOAL (SMP)

Acesso Móvel Pessoal (SMP) milhões 271,1

Densidade Acesso Móvel Pessoal acesso / 100 habitantes 136,4

SERVIÇO MÓVEL ESPECIALIZADO (SME)

Acesso Móvel Especializado (SME) mil 3.630,0

Densidade Acesso Móvel Especializado ³ acesso / 100 habitantes 2,7

SERVIÇO DE COMUNICAÇÃO MULTIMÍDIA (SCM)

Acesso fixo em serviço (SCM) mil 22.185,7

Desnidade de acesso fixo acesso / 100 domicílios 35,6

SERVIÇO DE TELEVISÃO POR ASSINATURA

Serviço de Televisão pos Assinatura mil assinaturas 18.019,7 Densidade Serviço de TV por Assinatura assinaturas / 100 domicílios 28,9

RADIODIFUSÃO

(20)

Retrasmissão de TV Estação 10.513

Rádios FM Estação 3.180

Rádios OM Estação 1.781

Rádios OC Estação 66

Rádios OT Estação 74

Rádios Comunitárias Estação 4.613

Notas:

1 - Dado referentes às concessionárias do STFC

2 - Dado referentes às concessionárias e autorizadas do STFC

3 - Dado calculados com base na população de municípios atendidos por SME Fonte: Anatel

Se observarmos a Tabela 1 poderemos verificar que hoje o Brasil possui 158,9 telefones para cada 100 habitantes, o que nos dá mais de um telefone por pessoa, isto levando em consideração telefones fixos e móveis. Mas o que mais impressiona em relação a tabela apresentada pela Anatel, é que em comparação à quantidade de telefones Fixos que hoje é de 44,4 milhões instalados para a telefonia móvel, que atingiu no ano de 2013 os impressionantes 271,1 milhões de linhas, ou seja, mais de um aparelho celular por pessoa. Além disso, segundo a Anatel, em comparação aos dados do ano de 2012, verificou-se que enquanto a telefonia fixa apresentou uma estagnação no crescimento do número de linhas, a telefonia móvel vem crescendo cada vez mais, a taxas muito maiores do que o crescimento da população brasileira no mesmo período.

1.2 ANDROID

Optou-se pela escolha do Android para o desenvolvimento deste trabalho por ser um sistema robusto, atual, inovador e flexível, além de disponibilizar um conjunto de softwares para dispositivos móveis que inclui aplicações de um sistema operacional, middleware e aplicativos chaves, onde o Android SDK fornece as ferramentas e APIs necessárias para começar a desenvolver aplicações para a plataforma Android usando a linguagem de programação Java (GOOGLE, 2011, p. 28).

(21)

Em sua curta história de sua existência até agora o projeto do Android passou por inúmeras transformações que o tornaram o que é hoje. Inicialmente foi desenvolvido por uma startup americana do Vale do Silício chamada Android Inc, que acabou sendo adquirida pela Google por volta de 2005 e a partir dai procurou amadurecer e aperfeiçoar o projeto, tornando-o público em meados de 2007 para assim, tornar o Android a primeira plataforma open source de desenvolvimento para dispositivos móveis.

Esta plataforma possibilita que qualquer pessoa desenvolva aplicações para os mais variados dispositivos e assim permite que os usuários possam tirar o melhor proveito de tudo que um dispositivo móvel pode oferecer. Uma das qualidades que o Android possui é o fato de não existir diferenciação de acesso aos recursos disponíveis no dispositivo independente de ser uma aplicação nativa ou uma aplicação criada por terceiros e neste sentido, cada usuário pode customizar seu dispositivo da forma que melhor lhe agradar, possibilitando que se faça qualquer tipo de modificação a que se tenha interesse.

Outro fato importante que possibilitou o grande crescimento da utilização deste Sistema Operacional, segundo informa LECHETA (2010, p. 22), se deve ao fato do Android ser uma plataforma de código aberto, atraindo o interesse de diversas empresas, que viram no Android uma oportunidade de terem um sistema customizado em seus dispositivos.

O Sistema Operacional do Android foi baseado no Kernel 2.6 do Linux, e é responsável por gerenciar a memória, os processos, threads e a segurança dos arquivos e pastas, além de redes e drivers (LECHETA, 2010, p. 23).

1.2.1 Conceitos Fundamentais

Em todo Sistema Operacional Android a arquitetura se divide em camadas, onde cada parte é responsável por gerenciar os seus respectivos processos (LECHETA, 2010, p. 30). A Figura 1 representa as camadas da plataforma Android.

(22)

Figura 1 – Camadas da Plataforma Android

Fonte: GOOGLE (2011, )

A plataforma para desenvolvimento é voltada para funcionar em dispositivos móveis baseados em um núcleo de Linux e a linguagem gerada, é escrita em Java e compiladas em bytecodes Dalvik para serem executadas em uma máquina virtual especialmente desenvolvida com este propósito.

O Ambiente para desenvolvimento disponibiliza um kit denominado Android SDK que possui as APIs e ferramentas necessárias para o desenvolvimento das aplicações, com diversos recursos, além de um emulador de dispositivo, ferramentas de depuração, memória, desempenho e um plugin para o Eclipse (ADT).

Segundo LECHETA (2010) as aplicações desenvolvidas Android são escritas em linguagem JAVA e o Android SDK compila seu código para um pacote Android comumente conhecido como Android package que possui o sufixo.apk e onde todo o código ali inserido fica sendo considerado uma aplicação e este código é utilizado pelos dispositivos móveis para a instalação da aplicação.

O sistema por sua vez, concede a cada aplicação um ID de usuário do sistema, consideração assim cada aplicação como um usuário diferente e fazendo com que o código de

(23)

cada uma rode isoladamente das demais aplicações em execução no dispositivo, com sua própria máquina virtual (VM) (LECHETA, 2010).

Uma aplicação não tem um único ponto de entrada, sendo construídas utilizando componentes que são instanciados no momento em que se tornam necessários. Os componentes básicos no desenvolvimento são as atividades (Activites), que geralmente correspondem a uma tela para o usuário, os serviços (Services), que não possuem uma interface visual e são utilizados para executar processamentos em segundo plano e além destes, existem os provedores de conteúdo (Content Providers) que servem para disponibilizar dados específicos de uma aplicação para outra e também é o único dos componentes básicos a não ser ativado por mensagens assíncronas e por fim, os receptores de broadcast (Broadcast Receivers) são os componentes que normalmente ficam inativos e respondem a eventos quando estes são acionados.

Cada pacote .apk contém um arquivo de manifesto onde estão declarados todos os componentes da aplicação. O arquivo é estruturado em linguagem XML e também é utilizado para declarar as bibliotecas utilizadas, permissões, versão e requisitos (LECHETA, 2010).

Outra ferramenta que o android utiliza é o Simple que nada mais é do que um framework Java para aperfeiçoar e simplificar o processo de serialização e deserialização, mantendo cada referência encontrada e tendo como principal objetivo o de traduzir objetos em documentos XML. Segundo Carey (2009), o uso deste framework tem várias vantagens, facilita o desenvolvimento de aplicações que utilizam o processo de serialização e deserialização sem se comprometer com uma curva de aprendizagem excessiva ou sobrecarga de desenvolvimento.

Ainda de acordo com Carey (2009), outra vantagem é que não requer nenhum tipo de configuração, para utiliza-lo, basta adiciona-lo no projeto. Seu arquivo Java é leve e não depende de uma série de outros arquivos.

O Android dispõe de um mecanismo que permite a chamada de procedimentos remotos, executados em outros processos, caso ocorra, por exemplo, em determinados momentos, quando a memória fique escassa, ele destrói um processo que não esteja sendo utilizado. Consequentemente, todos os componentes da aplicação que estão sendo executados

(24)

naquele processo também serão destruídos. Neste caso, é levada em conta a importância dos processos para o usuário, na hora de o Sistema escolher qual processo pode destruir e qual deve manter em atividade, onde ele irá destruir primeiro aqueles que contêm atividades que não estão mais visíveis na tela.

O Android também possui recursos para trabalharmos com elementos externos, bastando que sejam referenciados dentro dela, como imagens, sons e layouts, por exemplo. Estes elementos e recursos devem estar dentro do diretório res/, que reside no topo da árvore do projeto, no mesmo nível do src/, onde ficam os arquivos com o código fonte (LECHETA, 2010). Desta forma tudo que está localizado dentro do diretório res/ pode ser acessado pela aplicação utilizando a classe R, gerada automaticamente pelas ferramentas de desenvolvimento. Esta classe contém subclasses para cada tipo de recurso suportado pelo Android com identificadores dos recursos compilados.

Muitas aplicações necessitam de armazenar informações para serem utilizadas posteriormente e em relação aos dados, estes podem ser armazenados de diversas formas no SO Android, como através de um mecanismo chamado de preferências, onde é possível armazenar tipos primitivos e é geralmente utilizada para guardar as preferências do usuário.

Qualquer aplicação pode armazenar dados diretamente no aparelho ou em um dispositivo de memória removível, utilizando arquivos, ou de forma alternativa, com o SQLite, os dispositivos móveis contam com a possibilidade de armazenar informações em tabelas em um banco de dados e ainda a plataforma suporta o acesso a operações de rede que podem ser utilizadas para guardar ou requisitar dados (LECHETA, 2010).

1.2.2 Ciclo de Vida de Uma Aplicação Android

Outra parte importante que devemos levar em consideração no desenvolvimento de qualquer aplicação no SO Android e que cada componente de uma aplicação tem um ciclo de vida bem definido que inicia no momento em que é instanciado e acaba quando é destruído. E durante este tempo em que o componente está sendo executado, seu estado pode ser alterado diversas vezes.

(25)

Para entendermos melhor como funciona uma aplicação e suas activities é importante entendermos como cada uma das activities se comportam diante uma das outras durante a execução do sistema. Cada activity pode iniciar outra activity para executar outra ação e toda vez que uma nova activity é inicializada o sistema para a activity anterior e a preserva em uma pilha de retorno. Quando a nova activity é inicializada ela é colocada na pilha de retorno e ganha o foco do usuário.

A pilha de activities respeita o Mecanismo LIFO, ou seja, Last In First Out – último a entrar é o primeiro a sair – e assim que o usuário terminar com a activity atual e pressionar o botão BACK a mesma é retirada da pilha e destruída, fazendo com que a activity anterior seja resumida e ganhe o foco novamente.

Toda atividade possui essencialmente três estados: ativo, pausado temporariamente e parado ou encerrado. As transições entre estes estados são notificadas através de chamadas a sete métodos especiais, que são utilizados para realizar as ações apropriadas a uma determinada mudança de estado conforme demonstra a tabela 2

Tabela 2 – Ciclo de Vida de uma Aplicação Android

Método Descrição

onCreate( bundle ) Método obrigatório e invocado uma única vez, neste momento cria-se a view e invoca-se o método

setContentView(view) para que seja exibida a tela

representada pela view. Depois de finalizado, o método

onStart( ) é chamado para que se dê início ao ciclo de

vida visível da activity.

onRestart( ) Método chamado quando a activity está ficando visível ao usuário, dependendo do estado da aplicação pode ser chamado depois do método onCreate( ) ou

onRestart( ).

onStart( ) Método chamado quando uma activity está parada temporariamente e em processo de reinício, de forma automática chama o método onStart( ).

onResume( ) Método chamado quando a activity começa a interagir com o usuário, representa o estado de execução da aplicação. É chamado sempre depois do método

onStart( ).

(26)

dispositivo e que faça com que a activity encontrada no topo da pilha tenha de ser temporariamente interrompida. É normalmente utilizado para gravar dados não salvos até o momento, para que tudo possa ser recuperado, se necessário, no método onResume( ).

onStop( ) Método chamado quando a activity está sendo encerrada, e não está mais visível ao usuário. Se a

activity for reiniciada, o método onRestart( ) é

chamado ou no caso de ficar muito tempo parada o Android pode chamar automaticamente o método

onDestroy( ) para remover completamente a activity da

pilha.

onDestroy( ) Método que literalmente encerra a execução de uma

activity, sendo feita após sua execução, remoção

completa da aplicação da pilha e o encerramento completo do processo.

FrameLayout Tipo mais comum e simples de layout, utilizado por um componente que precisa preencher a tela inteira.

LinearLayout Utilizado para organizar os componentes na vertical ou horizontal.

TableLayout É uma herança de LinearLayout e pode ser utilizado para organizar os componentes em uma tabela, com linhas e colunas.

RelativeLayout Permite posicionar um componente relativo a outro, por exemplo, abaixo, acima ou ao lado de um componente já existente.

Fonte: (LECHETA, 2010)

Entre as chamadas dos métodos onStart() e onStop() a atividade pode ser vista pelo usuário e durante a chamada dos métodos onResume() e onPause() a atividade está na frente de todas as outras atividades e assim o usuário estará interagindo com ela. Já o método onPause() é o único cuja chamada é garantida antes do processo ser eventualmente destruído, e deve ser utilizado para armazenar, de forma persistente, dados para posterior restauração. Na figura 2 será demonstrado todo o funcionamento do ciclo de vida de uma aplicação android.

(27)

Figura 2 – Ciclo de Vida Aplicação Android

Fonte: (LECHETA, 2010)

No caso dos serviços, estes por sua vez também possuem estados e métodos de ciclo de vida que podem ser implementados para responder a mudanças de estado. Os receptores de broadcast possuem apenas um método de ciclo de vida que é chamado no momento em que uma mensagem chega para ele e o componente é considerado ativo apenas durante a execução deste método, ou seja, enquanto reage à mensagem.

1.2.3 Estrutura de uma Aplicação Android

Uma aplicação desenvolvida em Android baseia-se em uma arquitetura de componentes chaves, e que utilizam-se da combinação destes, combinados há uma série de elementos externos e mesmo assim, ela não necessariamente vai utilizar-se de todos estes

(28)

componentes em todas as suas aplicações. Nas figuras 3 e 4 são demonstrados a estrutura principal de uma aplicação android, suas classes JAVA que utilizam as interfaces gráficas dos seus arquivos XML principais que são parte integrante de toda aplicação e desenvolvimento android.

Figura 3 – Classes Java Figura 4 – Arquivos XML

Fonte: O Autor Fonte: O Autor

Cada classe está liga-se a um arquivo descritor XML criado na pasta layout e que define os componentes a serem exibidos na tela e onde cada componente é identificado por um id específico que é vinculado no código da classe.

No geral estas aplicações são compostas por uma combinação de classes e arquivos com extensão XML e assim definem a forma como será a sua visualização que responde a eventos, em conjunto com um arquivo XML denominado AndroidManifest.xml de existência obrigatória, e no qual são feitas configurações gerais da aplicação e dos componentes utilizados por ela. O arquivo AndroidManifest.xml é escrito em XML, obrigatório e único para a aplicação (LECHETA, 2010). Nele são descritos os componentes que fazem parte da aplicação, definidos nomes para as activities, o modo de orientação da tela, bem como

(29)

declaradas permissões para acesso a recursos como o GPS ou Internet. Este arquivo lista também as bibliotecas que a aplicação vai usar e qual activity principal irá iniciar a aplicação conforme demonstrado no quadro 1 do arquivo AndroidManifest.xml do protótipo desenvolvido.

Quadro 1 – AndroidManifest.xml

Fonte: O Autor

Aliados a esta estrutura, dois outros itens importantes funcionam em conjunto, tornando-se muitas vezes, componentes chaves no desenvolvimento. O primeiro são as Intents, mensagens responsáveis por ativar os componentes Service, Activity e

BroadcastReceiver de uma aplicação, utilizadas geralmente para facilitar a ligação entre os

componentes da aplicação ou de aplicações diferentes, em tempo de execução. Outro componente são as Views que utilizados para definir objetos gráficos exibidos na tela, com o objetivo de prover interação com o usuário. Exemplo destes elementos são botões, caixas de diálogo, mapas entre outros.

Ainda segundo Lecheta (2010) existem também os Content Providers que são componentes específicos de dados da aplicação disponibilizados para outras aplicações. Cada

provider é uma classe que herda de Content Provider e disponibiliza um conjunto padrão de

métodos para que outras aplicações possam recuperar e armazenar dados do tipo que o provedor controla.

(30)

O Android utiliza-se de uma poderosa biblioteca de banco de dados baseado em SQL que atua como um “mini-SGBD”, capaz de controlar diversos bancos de dados que podem conter diversas tabelas (LECHETA, 2010). No desenvolvimento do protótipo definido neste trabalho definiu-se por utilizá-la apenas como fonte de consulta de dados pré cadastrados para testes, sendo que o foco para trabalhos futuros no protótipo apresentado será o de conectar-se ao banco de dados de uma aplicação web que pode interligar todos os usuários cadastrados.

1.2.4 Mapas e Localização

Conforme citado em capítulos anteriores, o Android tem uma forte ligação com outras aplicações do Google Inc. A capacidade de usar os serviços do Google através do Android é

excelente e como não poderia ser diferente o SO disponibiliza provedores de localização que

podem ser utilizados na construção de aplicações baseadas na posição corrente do dispositivo, onde o componente central de localização é o objeto LocationManager. Desta forma torna-se possível listar os provedores de localização disponíveis, registrar para receber informações periódicas sobre mudanças de localização do dispositivo ou registrar um Intent para ser enviado quando o dispositivo se aproxima de um dado local, definido em termos de latitude e longitude.

Entre os provedores de localização disponíveis, geralmente estão a rede da operadora de telefonia móvel e o GPS podendo variar dependendo das especificações do dispositivo. Mas é importante ressaltarmos que este tipo de aplicação necessita utilizar-se de um provedor de localização, e para tanto, se faz necessária a respectiva permissão. Neste caso precisa-se adquirir uma API KEY do Google Maps para poder obter a permissão de usá-lo em sua aplicação e que é realizado através da geração de um MD5 da sua chave através do keytool de

seu PC ou o através do plugin do Android, usando o mesmo procedimento usado para se

realizar as assinaturas de aplicações desenvolvidas e após deve-se inscrever no Google Android Maps API Key.

Quando do registro para se receber informações periódicas sobre mudanças de localização do dispositivo, é possível selecionar o provedor de localização específico, bastando o nome, ou através de um critério considerando a precisão necessária para aplicação.

(31)

Além disso, ao se fazer o registro, é possível também determinar um tempo mínimo e uma distância mínima entre as atualizações no intuito de se economizar energia.

Uma das opções para se exibir um mapa na tela é o componente MapView, da biblioteca do Google Maps e que por não se tratar de uma biblioteca padrão da plataforma Android, torna-se necessário a sua indicação e a sua importação no arquivo de manifesto, sendo que também são necessários os procedimentos de registro conforme anteriormente indicados para as aplicações do Google Inc. Este componente exibe um mapa cujo conteúdo é requisitado em tempo real utilizando uma conexão com a internet, o que se faz necessário e disponibiliza métodos de controle de exibição, e também utiliza-se de uma classe especial (Overlay) que implementa uma camada sobre ele na qual podem ser desenhados diversos elementos.

1.2.5 Publicando Uma Aplicação

Toda aplicação em Android pode ser distribuída e publicada para ser utilizada por qualquer dispositivo que possua SO e que suporte os elementos e componentes disponibilizados no Level da API em que foi desenvolvida. Para tanto ela disponibiliza um arquivo com o sufixo .apk que empacota seu código compilado juntamente com dados e recursos utilizados.

Neste caso, porém, antes de se realizar o empacotamento, deve ser atribuída, no arquivo de manifesto, uma versão para a aplicação, onde, mesmo que o sistema não utilize esta informação, mesmo assim ela é útil para os usuários e para outras aplicações.

No caso de se publicar uma aplicação é necessário esta possua sua assinatura digitalmente e, portanto, deve ser utilizada uma chave do desenvolvedor para identificá-lo como responsável pela aplicação. Assim, depois de assinada, ela está pronta para ser distribuída para usuários com dispositivos equipados com a plataforma Android.

Existem várias as opções de distribuição, mas a mais usual e principal é a Android Market, que é uma espécie de loja virtual de aplicativos para a plataforma, onde usuários e

(32)

desenvolvedores dispõem de uma gama de aplicações para serem utilizadas e é bastante difundida devido ao fato de atingir um grande número de usuários, visto que pode ser acessada a partir da maioria dos dispositivos.

1.3 APLICATIVOS SIMILARES

Para o desenvolvimento deste protótipo também fez-se necessário o estudo e verificação de alguns aplicativos existentes e em utilização no mercado para serem utilizados como base para o estudo de suas especificações serão demonstrados alguns aplicativos e trabalhos correlatos ao tema desenvolvido no protótipo, bem como aplicações similares que foram encontradas durante a pesquisa e desenvolvimento deste trabalho. O objetivo de apresentarmos tais aplicativos com características semelhantes ao que está sendo desenvolvido neste trabalho é não apenas exemplificar o que se pretende, mas também o realizar um comparativo quando se finalizar o desenvolvimento de toda a ferramenta que se pretende.

Salientamos que nosso objetivo é apenas ilustrar algumas das possibilidades que se podem realizar e aproveitando os aplicativos em funcionamento, estes podem servir-nos de norte para assim realizarmos o nosso trabalho.

1.3.1 Apontador Postos

O Apontador Postos é um aplicativo gratuito que pode ajudar a encontrar o melhor preço de combustível em postos próximos ao usuário (HECKE, 2011). Segundo o Apontador (2010), o aplicativo determina automaticamente a localização do motorista e lista os postos mais próximos por ordem de distância conforme demonstrado na figura 5.

O aplicativo oferece inúmeras possibilidades e funções como por exemplo o fato de se poder visualizar a bandeira do posto, seu endereço, preços e obter ainda uma média dos

(33)

valores na região em que se encontra o usuário. Pode-se visualizar o posto no mapa, traçar uma rota e adicioná-lo aos favoritos. O aplicativo ainda abrange mais de mil cidades brasileiras (PRESTES, 2010) e encontra-se disponível para iPhone, iPod touch, Windows

Mobile e Blackberry. Mesmo que o aplicativo não tenha sido encontrado com o SO Android,

mesmo assim optou-se por citá-lo em virtude das funcionalidades encontradas que são muito importantes para o desenvolvimento da idéia inicial do projeto do protótipo desenvolvido.

Figura 5 – Apontador Postos

Fonte: HECKE (2014)

1.3.2 POA app

É um aplicativo desenvolvido especificamente para ser utilizado como guia oficial de Porto Alegre, uma das cidades sedes da Copa do Mundo de 2014 e que tem como objetivo apresentar aos visitantes, as qualidades e possibilidades da capital do Rino Grande do Sul. Este aplicativo possui agenda cultural, lista de bares, restaurantes, hotéis, pontos turísticos, notícias da capital dos gaúchos e um mapa das atrações imperdíveis da cidade. Disponibilizado para a Copa do Mundo de 2014, informações sobre os jogos, ingressos e programação especial para o período do evento como nas figuras 6 e 7.

(34)

Figura 6 – POA app Figura 7 – POA app

Fonte: MERKER (2014) Fonte: MERKER (2014)

Além dos aplicativos aqui demonstrados e de inúmeros outros disponíveis no mercado, também são demonstrados na referencial teórico deste trabalho alguns modelos desenvolvidos e apresentados em trabalhos anteriores com os mais diversos propósitos e que serviram de embasamento teórico para o desenvolvimento do protótipo final.

O crescimento do mercado tecnológico vem trazendo cada vez mais facilidades ao dia-a-dia da sociedade, e fazendo com que inúmeras soluções em aplicativos para o uso em

smartphones, sejam utilizadas. Os aplicativos criados possuem grande interesse econômico

aos que os utilizam, assim sendo, este ramo está em constante ascensão, e, portanto, é necessário que esteja em constante inovação e que possa suprir as expectativas de usuários e desenvolvedores, trazendo cada vez mais benefícios para os mesmos.

Neste Capítulo foram abordados todos os aspectos que dizem respeito à pesquisa e a busca pelo modelo ideal do projeto a que se desenvolveu. Apresentou-se todo o referencial teórico, dentre os autores e materiais pesquisados, além das ferramentas e os seus conceitos fundamentais para o desenvolvimento de qualquer que seja a aplicação no Sistema Operacional Android, bem como, a demonstração de alguns dos vários aplicativos que existem em funcionamento com algumas das especificações que se procura.

(35)

2 MODELAGEM DO SISTEMA

Para o desenvolvimento deste protótipo de comparação e divulgação de produtos em tempo real para o sistema operacional Android, que permitirá aos usuários receber e visualizar diversas informações de determinados produtos e prestadores de serviços em tempo real, através do acesso a um banco de dados do aplicativo Android, possibilitando o usuário baixar, curtir, compartilhar e utilizá-lo, sendo este disponibilizado por um serviço que fará a integração com o mesmo.

2.1 VISÃO GERAL DO SISTEMA

Para um melhor entendimento do que foi desenvolvido no Protótipo, apresentamos alguns conceitos de modelagem de sistemas que levamos em consideração no neste trabalho, pois segundo ELMASRI (2005, p. 3), os bancos de dados e os sistemas de bancos de dados se tornaram componentes essenciais no cotidiano da sociedade moderna. Cada vez mais, as atividades do dia-a-dia, envolvem alguma interação com os bancos de dados.

O usuário poderá visualizar os prestadores de serviços das mais diversas categorias e através deste aplicativo, pode realizar a identificação do prestador de serviço, bem como a sua localização para possível contato e contratação. Ele também consegue tecer comentários sobre determinado prestador de serviço contratado e realizar pesquisas por categoria de prestador de serviços cadastrados.

No que compete ao prestador de serviço, este realiza o cadastro diretamente pela ferramenta e assim coloca-se a disposição para futuras consultas dos usuários e futuros clientes. Mesmo que este não esteja no banco de dados da aplicação, poderá ser identificado através do site de buscas GOOGLE, desde que seus dados ou contatos estejam disponibilizados na web.

Segundo REZENDE (2005, p.7) a atividade de desenvolvimento de software, consiste de um processo de modelagem de sistemas do mundo real, intrinsecamente moldado a um

(36)

processo de transmissão de mensagens entre grupos de pessoas. Por este motivo, faz-se necessário cada vez mais que tenhamos plena consciência do quanto é necessário descrever um modelo gráfico para auxiliar a criação de um software, no intuito de alcançar o seu objetivo final.

ELMASRI (2005, p. 4) afirma que é viável que os bancos de dados e a sua tecnologia, representam um papel crítico em quase todas as áreas em que os computadores são utilizados, incluindo negócios, comércio eletrônico, engenharia, medicina, direito, educação e as ciências da informação, para citar apenas algumas delas. Assim sendo, dependendo da área do conhecimento, têm-se inúmeros sistemas reais que são abordados sobre algumas óticas e necessitam de bancos de dados específicos e com uma modelagem própria.

Entretanto, para entendermos os fundamentos da tecnologia de banco de dados, devemos começar a apresentar alguns conceitos e informações que se fazem necessários ao seu entendimento. Na Seção 2.2 deste capítulo, apresentamos os conceitos sobre UML e seus conceitos básicos. Na Seção 2.3, descreveremos alguns requisitos funcionais e logo após, já na Seção 2.4, realizaremos a identificação dos atores. Os casos de uso serão apresentados na seção 2.5, bem como o desenvolvimento dos diagramas de clasees que serão demonstrados na seção 2.6 e por fim, serão apresentados os diagramas de Banco de Dados na seção 2.7 deste trabalho.

2.2 UML

Segundo Elmasri (2005, p. 52), a metodologia UML está sendo extensivamente usada em projetos de software e possui vários tipos de diagramas utilizados nesses projetos e segundo Pressman (2010), UML é um padrão para desenvolvimento de software que reúne melhores práticas de metodologia de sistemas e ainda segundo FURLAN (1998, p.38) a UML, é uma linguagem de modelagem, e não uma metodologia. Muitas metodologias consistem, pelo menos em princípio, de uma linguagem de modelagem e um procedimento de usa dessa linguagem.

(37)

A UML é a linguagem padrão para especificar, visualizar, documentar e construir artefatos de um sistema e pode ser utilizada com todos os processos ao longo do ciclo de desenvolvimento e através de diferentes tecnologias de implementação (FURLAN, 1998, p. 33). Ela vai além de uma simples padronização em busca de uma notação unificada, pois possui conceitos novos que não são encontrados em outros métodos orientados a objetos.

Neste modelo, diversos diagramas auxiliam na visualização do problema e a concepção da solução, permitindo uma visão melhor dos objetos e seus relacionamentos; ela propõe uma linguagem visual para especificação (modelagem) de sistemas orientados a objetos, fornecendo assim a representação gráfica para os elementos essenciais do paradigma de objetos como classes, atributos, objetos, troca de mensagens, etc.

De acordo com Larman (2005), grandes sistemas necessitam de uma série de especificações e geralmente tais documentos são longos e muito detalhados. A modelagem proporcionada pela UML permite simplificar o entendimento de um sistema, ao transformar suas complexidades em objetos gráficos simples, onde a lógica interna de seu funcionamento é abstraída.

Ainda segundo Pressman (2010), através da modelagem também é possível estruturar um sistema. A manutenção que ocorrer nos posteriores ciclos de desenvolvimento fica mais fácil de ser efetuada já que a mesma ocorre inicialmente num nível lógico, e não no código do aplicativo, de forma que se pode evoluir os diagramas que serão alterados e verificar suas consequências, antes de se preocupar com a fase de desenvolvimento.

2.3 ANÁLISES DE REQUISITOS

O protótipo desenvolvido roda em Smartphones com o sistema Operacional Android que executem a partir da versão 2.3.3 com API nível 8, com armazenamento de dados no SQlite e que trabalha on-line e gratuito com todas as suas funcionalidades.

Ao acessar o aplicativo, o usuário, tem a opção de cadastrar-se, caso este seja prestador de serviço e queira dispor seus dados para que outros usuários tenham acesso, ou

(38)

poderá se direcionar para a tela que realiza as consultas dos prestadores de serviço disponíveis.

Na segunda tela, no caso de escolha de cadastro, o usuário terá a opção de uma tela de cadastro de registros onde o mesmo possa cadastrar seus dados como nome, endereço, telefone, e-mail de contatos e também existirá a opção de ele registrar sua localização no google maps caso assim o desejar, baseado no endereço fornecido.

Na tela de pesquisa o usuário tem a possibilidade de pesquisar digitando o tipo de prestador de serviço que deseja localizar ou selecionar um tipo de categoria pré definida em uma lista adicional. Ao realizar a pesquisa o usuário será direcionado para a lista de opções disponíveis em relação a consulta realizada e assim poderá ter acesso as informações relacionadas a cada um dos itens listados, bastando apenas selecioná-lo.

Quando o usuário selecionar um item da lista, este será solicitado se deseja visualizar apenas os dados disponíveis e também se deseja visualizar a localização no mapa, além de outras informações como avaliação de outros clientes anteriores que utilizaram os seus serviços.

Para Bezerra (2007, p.22), o principal objetivo de Levantamento de requisitos é que usuários e desenvolvedores, juntamente com os clientes, tentem levantar e definir as necessidades dos futuros usuários do sistema a ser desenvolvido. Os requisitos podem ser classificados em duas grandes Cateforias: Requisitos Funcionais, que são responsáveis por definirem as funcionalidades do sistema e os Requisitos não-funcionais que declaram as características, restrições relacionadas as suas funcionalidades.

2.3.1 Requisitos Funcionais

No processo de desenvolvimento de sistemas, as etapas iniciais, é geralmente aonde ocorre a maioria dos problemas, onde no mínimo são aqueles que necessitam de mais cuidados, e que são mais dispendiosos, podendo causar os maiores impactos negativos. Segundo LARMAN (2004, p. 65) é de grande ajuda o uso de algum tipo de esquema de

(39)

categorização como uma lista de verificação para a cobertura de requisitos, a fim de reduzir o risco de não levar em conta alguma faceta importante do sistema e ainda categoriza os requisitos em funcionais (comportamentais) ou não funcionais (todos os outros).

Os Requisitos funcionais estão entre as etapas iniciais de todo processo de desenvolvimento e necessitam de atenção e cuidados específicos. São declarações de funções ou serviços que o sistema deverá fornecer e define como o sistema deverá se comportar ou reagir em determinadas situações e também como deverá tratar entradas específicas. A especificação de requisitos funcionais deve ser completa e consistente (SOMMERVILLE, 2007, p. 81).

Ainda segundo Wazlawick (2004, p.38), requisitos funcionais correspondem a listagem de tudo que os sistemas deve fazer. A seguir demonstraremos as informações fundamentais que definem as funcionalidades do sistema e alguns requisitos funcionais para o protótipo, conforme demonstrado nos Quadro 2 até o Quadro 5.

Quadro 2 - Requisito funcional 1 – Visualizar Prestadores de Serviços F1. Visualizar dados de contato de Prestadores de Serviço

Descrição:

O sistema deve permitir que o usuário selecione baseando-se em uma pesquisa, os prestadores de serviços e assim possa visualizar uma lista com os dados disponibilizados pelos mesmos no momento de seu cadastramento.

Restrições lógicas:

O usuário deverá visualizar os dados em outra tela.

Fonte: O Autor

Quadro 3 - Requisito funcional 2 – Cadastrar Prestadores de Serviços F2. Realizar o cadastro de Prestadores de Serviço

Descrição:

O sistema deve permitir que qualquer usuário possa se cadastrar, e disponibilizar seus dados aos demais usuários como prestador de serviços, bem como este possa permitir que seus dados sejam totalmente visualizados por outros usuários ou se preferir apenas dados de contato e localização.

Restrições lógicas:

O usuário será direcionado para uma tela de cadastro. Fonte: O Autor

(40)

Quadro 4 - Requisito funcional 3 – Cadastrar Avaliação do Prestador de Serviço F3. Realizar uma breve avaliação do Prestador de Serviço

Descrição:

O sistema deve permitir que qualquer usuário possa avaliar os prestadores de serviços cadastrados em forma de comentários, disponibilizando que outros usuários visualizem estes comentários e avaliações em futuras pesquisas.

Restrições lógicas:

O usuário será direcionado para uma tela separada do cadastro para informar a avaliação.

Fonte: O Autor

Quadro 5 - Requisito funcional 4 – Visualizar no Mapa a Localização do Prestador de Serviço F4. Visualizar a localização de todos os prestadores de serviço próximos

Descrição:

Qualquer usuário deve ter permissão de visualizar os prestadores de serviço localizados em um mapa do google maps que demonstre a localização e informações disponibilizadas na hora do cadastro.

Restrições lógicas:

O usuário será direcionado para uma tela assim que escolher a opção de demonstração no mapa.

Fonte: O Autor

2.3.2 Requisitos Não-Funcionais

No que diz respeito aos requisitos não-funcionais, estes por sua vez estão mais relacionados ao uso da aplicação em termos gerais como por exemplo o desempenho, usabilidade, confiabilidade, segurança, disponibilidade e tecnologias envolvidas, em outras palavras, um requisito não funcional de software é aquele que descreve não o que o sistema fará, mas como ele fará.

Essencialmente são as propriedades e características mínimas do sistema, e fica a cargo do desenvolvedor optar por atender tais requisitos ou não pois como define Wazlawick

(41)

(2004, p.38), requisitos não-funcionais são restrições colocadas sobre como o sistema deve realizar seus requisitos funcionais. Geralmente nos requisitos não-funcionais no caso da ocorrência de falha do não atendimento a um determinado requisito, poderá tornar todo o sistema inconsistente e de baixa qualidade.

2.3.3 Cenários

Os usuários quando acessarem o protótipo terão duas opções iniciais, a de pesquisa e de cadastramento. A primeira opção é para todos os usuários que desejam realizar algum tipo de busca para localizar os prestadores de serviços cadastrados no aplicativo. Já a segunda opção leva o usuário a tela de cadastro que permite que o mesmo realize o seu cadastro e permita que outros usuários possam identifica-lo como prestador de serviços e ainda que possam visualizar suas informações e localização. É disponibilizada a opção para o usuário lançarem observações sobre o prestador de serviço cadastrado como uma forma de avaliação dos serviços prestados.

Nos quadros 6 e 7 estão listados alguns do Cenários primários e secundários que utilizamos com base para o desenvolvimento do protótipo proposto neste trabalho.

Quadro 6 – Cenários Primários Cenários Primários

- Os usuários realizam pesquisas para localizar Prestadores de Serviços; - Os usuários identificam os Prestadores de Serviços mais Próximos; - Os usuários se cadastram como Prestadores de Serviços;

- Os usuários disponibilizam seus dados para acesso de outros usuários; - Os usuários visualizam os Prestadores de Serviço em uma Lista; - Os usuários visualizam os Prestadores de Serviço em um Mapa;

- Os usuários registram observações e avaliações dos Prestadores de Serviços;

(42)

Quadro 7 – Cenários Secundários Cenários Secundários

- O usuário não possui cadastro / Realizar o Cadastro;

- O usuário não disponibiliza os seus dados para que outros usuários possam visualizar / Mostrar apenas o Nome e a Cidade;

- A pesquisa do usuário não retorna dados / Informar que não possui Pesquisadores Cadastrados para a região solicitado e perguntar se deseja expandir pesquisa;

Fonte: O Autor

2.3.4 Identificação dos atores

Os atores, no caso de desenvolvimento de sistemas são utilizados para modelar e representar os papéis dos “usuários” de um sistema, sendo eles usuários humanos ou outros sistemas. Os atores são externos ao sistema, e interagem com o mesmo podendo ser descritos como “qualquer coisa que possua um comportamento, inclusive o próprio sistema quando invoca serviços de outro sistema” (LARMAN, 2004). Demonstramos na figura 8 a descrição do diagrama de atores utilizada no desenvolvimento do protótipo.

Figura 8 - Identificação de Atores

Referências

Documentos relacionados

A par disso, analisa-se o papel da tecnologia dentro da escola, o potencial dos recursos tecnológicos como instrumento de trabalho articulado ao desenvolvimento do currículo, e

Durante o exercício de 2008, a sociedade de direito espanhol Cajastur Inversiones, S.A. indicou José Maria Brandão de Brito como seu representante no Conselho Geral e de Supervisão

Tese apresentada como requisito parcial para obtenção do título de Doutor pelo Programa de Pós-graduação em Direito da PUC-Rio.. Aprovada pela Comissão Examinadora abaixo

Por meio destes jogos, o professor ainda pode diagnosticar melhor suas fragilidades (ou potencialidades). E, ainda, o próprio aluno pode aumentar a sua percepção quanto

Na Figura 4.7 está representado 5 segundos dos testes realizados à amostra 4, que tem os elétrodos aplicados na parte inferior do tórax (anterior) e à amostra 2 com elétrodos

Na população estudada, distúrbios de vias aéreas e hábito de falar muito (fatores decorrentes de alterações relacionadas à saúde), presença de ruído ao telefone (fator

TABELA 7 – Produção de massa fresca e seca das plantas de almeirão, cultivadas sob três e quatro linhas por canteiro, em cultivo solteiro e consorciado, na

Portanto, este trabalho focou em analisar, com a simulação de parâmetros bioclimáticos, três modelos de estufas agrícolas, variando a forma de cobertura – em arco e