anexo 2 - IFSP-PRC

Propaganda
ANEXO 2
INSTITUCIONAL/IFSP
PROJETO DE PESQUISA
TÍTULO DO PROJETO:
Abordagens multiplataforma para sistemas web responsivo com utilização de cache
Área do Conhecimento (Tabela do CNPq):
1
.
0
3
.
0
3
.
0
1
1. RESUMO
Os softwares se tornarão uma ferramenta fundamental nas atividades das pessoas
e empresas ao longo dos anos. A possibilidade de acesso fácil viabilizado pela
popularização da plataforma web no primeiro momento seguido pela plataforma
móvel está modificando a necessidade de acesso e processamento de informações
das pessoas. A plataforma móvel estendeu o acesso aos softwares, reduzindo ainda
mais a limitação geográfica e possibilitando o seu uso em locais com difícil acesso.
Diante desse cenário, o desenvolvimento de softwares ganha mais um desafio,
além da exigência por qualidade e produtividade, em muitos casos ele deve ser
multiplataforma, isto é, ser compatível com os diversos dispositivos utilizados
pelos usuários, seja eles móveis ou não.
Entre as abordagens para desenvolvimento de softwares multiplataforma a
baseada em web possui vantagens por permitir a utilização do software em
computadores desktop e dispositivos móveis desde que sejam responsivos. Porém,
na maior parte dos softwares desenvolvidos baseado em web, é necessária
conexão com a internet para possibilitar o uso de todas as suas funcionalidades.
Esse fato ocorre devido a impossibilidade de ser operado sem rede, diferenciando
de softwares desenvolvidos de forma nativa ou hibrida para dispositivos móveis.
Motivados por essas ideias esse projeto visa o estudo de abordagens para
desenvolvimento de softwares baseado em web que utilizem mecanismos que
explorem os sistemas de cache possível devido aos novos recursos do HTML5. A
utilização de design responsivo junto com sistemas de cache possibilita a utilização
de softwares baseados em web de forma similar aos instalados de forma nativa ou
híbrida, contribuindo para a produtividade e manutenção de softwares
multiplataforma.
2. FUNDAMENTAÇÃO TEÓRICA
Atualmente existe uma grande necessidade do uso de aplicativos conectados a
internet, essa necessidade contribui para o surgimento de diversos tipos de
dispositivos, permitindo o uso dos aplicativos em locais de difícil acesso. Embora, o
desenvolvimento de aplicativos para dispositivos móveis vem sendo explorados a
mais de 10 anos, em 2008 começou uma grande expansão no desenvolvimento
desses aplicativos, influenciada pela abertura da AppleStore. Após essa data várias
outras empresas acompanharam o lançamento da Apple, com lojas de aplicativos
para dispositivos móveis equipados com diferentes sistemas operacionais, como:
Android, BlackBerry, Nokia Ovi, Windows Phone, entre outros. Dessa forma, a
ampliação do uso de dispositivos impactou na necessidade do desenvolvimento de
-
4
aplicativos e adaptações de versões de sistemas para essas novas plataformas.
Entre os dispositivos disponíveis, os mais utilizados são: smartphones, tablets,
computadores pessoais (pc), centrais multimídia e agora mais recente os
smartwatch, todos eles com acesso a internet e sistemas operacionais que
permitem a instalação de aplicativos. Para o desenvolvimento desses aplicativos
deve ser considerado as características especificas de cada dispositivo, tais como:
tipos e versões dos sistemas operacionais, disponibilidade de acesso a internet,
recursos disponíveis (GPS, Câmera, Armazenamento, etc), tamanho de telas, entre
outros. Todas essas características impactam diretamente na produtividade,
manutenção e qualidade dos aplicativos, uma vez que a equipe de desenvolvimento
possui retrabalho na geração de versões para cada sistema operacional
(Wasserman 2010).
Diante do número de sistemas operacionais e dispositivos disponíveis, o
desenvolvimento para múltiplas plataformas se tornou uma tarefa complexa. Cada
sistema operacional possui uma linguagem padrão para desenvolvimento,
denominado desenvolvimento nativo, as versões dos aplicativos para cada sistema
operacional são desenvolvidas de forma individual. Para aumentar a produtividade
e deixar o aplicativo viável no modo de desenvolvimento nativo algumas
organizações pode produzir o aplicativo para as plataformas com maior número de
usuários, deixando as plataformas com uma quantidade menor de usuários sem
uma versão do aplicativo. Além da preocupação com as plataformas e
características de cada dispositivo, os desenvolvedores tem que se preocupar com
as versões dos sistemas operacionais, alguns aplicativos são projetados para rodar
a partir de uma determinada versão, incompatibilizando o aplicativo para versões
inferiores. A escolha de uma plataforma especifica para o desenvolvimento pode
reduzir o público alvo dos aplicativos, visto que existe uma disputa acirrada de
números de usuários por sistema operacional (IDC2014). A falta de versões para
os sistemas operacionais mais utilizados, podem representar redução de mercado
e desvantagem competitiva em relação aos concorrentes.
Essa questão técnica que envolve produtividade e manutenção dos aplicativos,
junto com questões comerciais contribuíram para o surgimento de alternativas a
forma nativa de desenvolvimento, que garantisse maior produtividade e
abrangência de plataformas com menor esforço (Heitkotter2013). Uma dessas
alternativas é o desenvolvimento hibrido, essa forma de desenvolvimento utiliza
tecnologias web: HTML5, CSS e JavaScript para confeccionar aplicativos para
vários sistemas operacionais. Existem uma série de frameworks que suportam o
desenvolvimento hibrido, através desses frameworks é possível desenvolver
aplicativos utilizando uma única tecnologia para as várias plataformas,
aumentando assim a produtividade. Entre esses frameworks multiplataforma
podemos citar o Cordova (Cordova), PhoneGap (PhoneGap) (baseado no Cordova),
Intel XDK (IntelXDK), Titanium SDK (Titanium), entre outros. Cada framework
possui suas características especificas de desenvolvimento, como IDE (Integrated
Development Environment) especifica, arquitetura de desenvolvimento destinto,
permição para uso de API´s, entre outras. Porém todas elas utilizam tecnologia web
e podem ser distribuídos de forma similar ao desenvolvimento nativo, isto é,
através das lojas de aplicativos (app store) na internet de cada sistema
operacional. Essa forma de distribuição de aplicativo possui preferência pelos
usuários em relação a acessos realizados através de navegadores, em geral,
somente vinte porcento do tempo gasto com o dispositivo é utilizando o navegador
(BusinessInside), o restante é utilizando aplicativos instalados, mostrando
vantagem competitiva em relação aos navegadores. Uma vez instalado no
dispositivo o aplicativo opera através de um navegador nativo (webview) presente
na maior parte dos dispositivos móveis, que interpreta as tecnologias web,
tornando transparente ao usuário a origem do desenvolvimento
(hernandez2009war).
O desenvolvimento baseado em Web também pode ser considerado uma outra
alternativa para a construção de aplicativos, assim como os aplicativos híbridos,
podem ser construídos utilizando tecnologias web: HTML5, CSS e JavaScript
(amatya2014cross). Os aplicativos web também são conhecidos como aplicativos
HTML5, e se diferem dos aplicativos híbridos em alguns pontos, uma das principais
diferenças é a distribuição que não é feita através das app stores, os usuários
precisam digitar no navegador do dispositivo a URL (Uniform Resource Locator)
do aplicativo. Outro detalhe se refere ao desenvolvimento, que não necessita
obrigatoriamente de um framework especifico como no caso dos aplicativos
híbridos, através de parâmetros do HTML5 para controle do viewport é possível
preparar o aplicativo para diferentes tamanhos de tela, permitindo com que o
usuário utilize o aplicativo em um desktop ou em um dispositivo móvel. Essa
característica se torna uma vantagem para os aplicativos web, uma vez que o
usuário pode escolher onde vai operar o aplicativo, em situações onde será
utilizado grandes volumes de dados é conveniente a operação em um desktop,
para casos com um volume de dados menor ou realização de consultas, pode ser
operado através de um dispositivo móvel. O termo usado para a adaptação de
aplicativos web para os diferentes tamanhos de tela e orientação de tela é web
responsivo (koneckimobile). Para o desenvolvimento web responsivo é necessário
a utilização de quatro técnicas fundamentais: o tamanho dos elementos e as
imagens que compõem o software é dado em porcentagem, componentes Media
Query no servidor que permitem apresentação de layouts em diferentes tamanhos
de tela.
Além do design responsivo, um software multiplataforma baseado em web pode
utilizar os conceitos de cache para ter o comportamento similar aos aplicativos
nativos e híbridos. Sistemas de cache são repositórios contidos nos navegadores
que visam reduzir o trafego de dados na rede, reduzir a carga de processamento
dos servidores, uma vez que parte do software pode ser processado no cliente e
permite com que o software baseado em web possa ser operado sem a necessidade
de internet. Uma vez acessado, o software armazena as principais funções no
dispositivo móvel ou desktop e permite a utilização pelo usuário da mesma forma
que um aplicativo instalado local. O recurso de cache está sendo aperfeiçoado pelo
HTML5 e os principais navegadores do mercado, liberando mais espaço em disco
para esse tipo de recurso, por se tratar de um recurso recente poucas aplicações
exploram essa tecnologia. Portanto o objetivo desse trabalho é desenvolver
softwares que explorem essa tecnologia e permitam a utilização sem a necessidade
de rede a todo momento, um mecanismo de sincronização presente no HTML5
consegue identificar a presença de internet para completar uma operação de forma
transparente ao usuário sempre que isso for necessário (Mehta e Jha 2014).
3. OBJETIVOS
O projeto visa a pesquisa de softwares multiplataforma baseado em web que
utilize os recursos de cache do navegador. Estudos comparativos com aplicativos
híbridos que operam sem rede será conduzida para verificar o desempenho da
tecnologia de cache para software baseado em web. Sistemas de cache presentes
em navegadores para desktop e dispositivos móveis pode oferecer grande
vantagem competitiva para o desenvolvimento web em relação ao
desenvolvimento nativo e hibrido.
Sistemas web permitem a utilização de desktop quando as operações realizadas no
software são muito complexas ou necessitem de grande volume de dados. E
permitem a utilização de dispositivos móveis, reduzindo a limitação geográfica de
acesso e manipulação de dados do software. Por se tratar de um único sistema,
essa forma de desenvolvimento aumenta a produtividade e manutenção em
relação a aplicativos híbridos e nativos, uma vez que os mesmos necessitem de um
sistema web desenvolvimento a parte para a utilização de desktop. Um estudo
comparativo sobre a eficiência de aplicativos híbridos e web referente a questão de
operação sem rede será conduzida para validar a utilização de cache para
softwares baseados em web.
4. MATERIAIS E MÉTODOS
O software multiplataforma resultado do projeto será testado através do uso de
diferentes dispositivos móveis e desktop. Será analisado o nível de satisfação
através da aparência, comportamento e eficiência da operação do software sem e
com internet.
O projeto será desenvolvido utilizando a metodologia Ágil. Após a definição da
equipe de desenvolvedores e do domínio do software, a aplicação será modelada e
os testes da tecnologia serão conduzidos. A princípio será realizada uma pesquisa
detalhando os recursos disponíveis para a geração de softwares responsivos. Será
desenvolvido uma aplicação e testado sua responsividade, caso o resultado seja
satisfatório, estudos sobre aplicações utilizando cache será realizado. Estudos
sobre formas e recursos para utilização de cache serão essenciais para análise de
todo potencial desse recurso atualmente. Formas de sincronização e identificação
da rede de forma automática também integrará o estudo.
Após a fase de teste e estudos iniciais, o software em questão começara a ser
produzido e testado nos diferentes dispositivos disponíveis no mercado.
Simuladores de dispositivos também serão utilizados para validação dos
experimentos.
5. PLANO DE TRABALHO
Tabela 5.1 Metas estabelecidas para a pesquisa.
METAS
DESCRIÇÃO
1
Definição e modelagem do domínio do software que será validado no
projeto.
2
3
4
5
6
7
8
9
Estudo sobre responsividade e sistemas de cache para aplicativos web.
Estudo sobre responsividade e sistemas de cache para aplicativos web.
Desenvolvimento de software utilizando os conceitos discutidos no
projeto.
Entrega do Relatório Parcial- até 15/07/15
Teste de software nas principais plataformas e dispositivos existentes
no mercado ou através de simuladores.
Pesquisa comparativa entre softwares que rodem de modo nativo,
hibrido e web sem a necessidade de internet.
Preparação da documentação e pôster final do projeto.
Entrega do Relatório Final – até 30/11/2015
Tabela 5.2 Cronograma proposta para cumprimento das metas.
MESES
METAS MAR
ABR
MAI
JUN
JUL
AGO
SET
1
-----2
-----3
-----4
------ -----5
-----6
----------7
-----8
9
OUT
NOV
-----------
6. VIABILIDADE DE EXECUÇÃO
A pesquisa será realizada nos laboratórios do IFSP campus Piracicaba e será
utilizado computadores pessoais ou fornecidos pelo IFSP de acordo com a
preferência do bolsista.
7. RESULTADOS ESPERADOS E DISSEMINAÇÃO
A investigação de metodologias utilizadas no mercado possui grande importância
como guia da pesquisa e trabalhos futuros para essa área de pesquisa na
instituição.
Serão avaliados os resultados do andamento do projeto em detrimento com aquilo
que foi previsto no cronograma, isto é, relatórios mensais e acompanhamento da
evolução do projeto de forma semanal. A entrega dos relatórios será utilizada para
compor o relatório parcial e final previsto no cronograma do projeto.
O resultado final do projeto será um relatório comparativo entre as abordagens
multiplataforma existentes no mercado, os programas desenvolvidos como testes
para validar as abordagens e a escrita de um pôster para apresentação do projeto.
REFERÊNCIAS BIBLIOGRÁFICAS
Amatya, Suyesh e Arianit Kurti (2014). “Cross-platform mobile development:
challenges and opportunities”. Em:ICT Innovations 2013. Springer, pp. 219–229
ver p.4).
Ballve, Marcelo (2013). The Future Of Mobile Development: HTML5 Vs. Native
Apps.url:http://www.businessinsider.com/html5-vs-native-apps-for-mobile2013-6?op=1(ver p.6).
BARBOSA, A. Efeitos de Transientes na Perda de Carga no Escoamento Óleo –
pesado em Regime Anular em Duto Metálico. 2004. 120 f. Dissertação
(Mestrado em Ciências e Engenharia de Petróleo) - Instituto de Geociências,
Universidade Estadual de Campinas, Campinas, 2004.
CHISHOLM, D. Two-phase flow in pipelines and heat exchangers. Pitman Press
Ltd, 1983.
Cordova. url:http://cordova.apache.org/(ver pp.4,5,11,14).
DOS REIS, E.; GOLDSTEIN JR, L. Characterization of slug flows in horizontal piping
from signal analysis of a capacitive probe. Flow Measurement and
Instrumentation, v. 21, n. 3, p. 347-355, 2010.
Heitkötter, Henning, Sebastian Hanschke e Tim A Majchrzak (2013). “COMPARING
CROSS-PLATFORM DEVELOPMENT APPROACHES FOR MOBILE APPLICATIONS”.
Em: Web Information Systems and Technologies140, pp. 120–138 (ver pp.4,5).
Konecki, Mario. “MOBILE AND RESPONSIVE WEB APPLICATIONS”. Em: (ver p.4).
Mehta, Kushal e Jasmine Jha (2014). “Web Cache Technique Responsive Web
Design”.Em: (ver p.4).
PhoneGap.PhoneGap
6,11, 14).
Titanium.Titanium
pp.4,5).
Documentation.url:http://docs.phonegap.com/en(ver
pp.
Mobile.url:http://www.appcelerator.com/titanium/(ver
Wasserman, Anthony I. (2010). “Software engineering issues for mobile
application development”. Em: Proceedings of the FSE/SDP workshop on Future of
software engineering research - FoSER ’10978-1-4503.6, pp. 397–
400.doi:10.1145/1882362.1882443.url:http://portal.acm.org/citation.cfm?doid=1
882362.1882443(ver p.3).
Download