protótipo de aplicativo para acompanhamento da carteira de ações
TRANSCRIPT
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE INFORMÁTICA
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA
JEFFERSON LUIZ RIBEIRO DOS SANTOS
PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO DA
CARTEIRA DE AÇÕES PARA A PLATAFORMA ANDROID.
MONOGRAFIA DE ESPECIALIZAÇÃO
CURITIBA
2012
1
JEFFERSON LUIZ RIBEIRO DOS SANTOS
PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO DA
CARTEIRA DE AÇÕES PARA A PLATAFORMA ANDROID.
Monografia de especialização apresentada ao
Departamento Acadêmico de Informática da
Universidade Tecnológica Federal do Paraná
como requisito parcial para obtenção do título
de “Especialista em Tecnologia Java”.
Orientadora: Prof.ª Dr.ª Marília Abrahão
Amaral.
Co-orientador: Prof. Nelson Hideo Kashima.
CURITIBA
2012
Ministério da Educação Universidade Tecnológica Federal do Paraná
Diretoria do Campus Curitiba Gerência de Pesquisa e Pós-Graduação Departamento Acadêmico de Informática
Curso de Especialização em Tecnologia Java
TERMO DE APROVAÇÃO
Título da Monografia
Protótipo de aplicativo para acompanhamento da carteira de ações para a
plataforma Android
por
Jefferson Luiz Ribeiro dos Santos
Esta monografia foi apresentada às 19:30 do dia 13 de agosto de 2012 como
requisito parcial para a obtenção do título de ESPECIALISTA EM TECNOLOGIA
JAVA, Departamento Acadêmico de Informática, Universidade Tecnológica Federal
do Paraná. O candidato foi arguido pela Banca Examinadora composta pelos
professores abaixo assinados. Após a deliberação, a Banca Examinadora
considerou o trabalho APROVADO.
________________________________ Prof. Dr. João Alberto Fabro
(UTFPR)
________________________________ Prof. Paulo Maurício de Lucchi Bordin
(HSBC)
________________________________ Prof.ª Dr.ª Marília Abrahão Amaral
(UTFPR) Orientadora
Visto da coordenação:
________________________________ Prof. Dr. João Alberto Fabro
Coordenador
UTFPR - DAINF Av. Sete de Setembro, 3165 80230-901 Curitiba PR Brasil
www.dainf.ct.utfpr.edu.br Fone: +55 (41) 3310-4644 Fax: +55 (41) 3310-4646
Ao meu tio e padrinho Paulo Roberto
Ribeiro (in memorian).
Aos meus familiares, que sempre me
incentivaram.
Em especial à minha esposa Maria
Helena e nosso filho Emanuel.
AGRADECIMENTOS
Agradeço aos meus familiares, amigos e a todos que direta ou indiretamente
contribuíram para a realização deste trabalho.
"O que você sabe não tem valor, o valor
está no que você faz com o que sabe".
Bruce Lee
RESUMO
SANTOS, Jefferson Luiz R. PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO DA CARTEIRA DE AÇÕES PARA A PLATAFORMA ANDROID. 2012. 100 f. Monografia (Especialização em Tecnologia Java) – Departamento Acadêmico de Informática, Universidade Tecnológica Federal do Paraná. Curitiba, 2012. Esta monografia apresenta o desenvolvimento de um protótipo de aplicativo para acompanhamento da carteira de ações. O protótipo foi desenvolvido para o sistema operacional Android, plataforma que vem apresentando o maior crescimento entre dispositivos móveis como smartphones e tablets. Neste trabalho serão descritos os conceitos relacionados ao mercado de ações, mobilidade, dispositivos móveis e seus sistemas operacionais. Além disso, serão apresentadas informações sobre a metodologia, tecnologias e ferramentas utilizadas para a construção do protótipo e os resultados obtidos ao final do seu desenvolvimento. Palavras-chave: Java. Android. Dispositivos Móveis. Mercado de Ações. Carteira de Ações.
ABSTRACT
SANTOS, Jefferson Luiz R. APPLICATION PROTOTYPE ON ANDROID PLATFORM FOR MONITORING STOCK PORTFOLIO. 2012. 100 f. Monografia (Especialização em Tecnologia Java) – Departamento Acadêmico de Informática, Universidade Tecnológica Federal do Paraná. Curitiba, 2012. This work presents the development of an application prototype for monitoring stock portfolios. This prototype was developed for the Android operating system, platform with the biggest grow among mobile devices such as smartphones and tablets in recent years. In this work will be described the concepts related to the stock market, mobility, mobile devices and their operating systems. Besides, will be provided information about the methodology, tools and technologies used to the build the prototype, and the results obtained at the end of its development. Keywords: Java. Android. Mobile Devices. Stock Market. Stock Portfolio.
LISTA DE FIGURAS
Figura 1 – Representação de um cenário de computação móvel. ............................ 17
Figura 2 – Relação entre hardware, sistema operacional e software. ....................... 20
Figura 3 – Arquitetura Android. ................................................................................. 22
Figura 4 – Exemplo de documento XML. .................................................................. 35
Figura 5 – Simples interação com Web Service. ....................................................... 37
Figura 6 – Diagrama de Casos de Uso. .................................................................... 43
Figura 7 – Diagrama de Classes. .............................................................................. 44
Figura 8 – Diagrama Entidade Relacionamento. ....................................................... 45
Figura 9 – Estrutura do funcionamento do protótipo. ................................................ 46
Figura 10 – Abas do aplicativo. ................................................................................. 47
Figura 11 – Tela consulta ações. .............................................................................. 47
Figura 12 – Tela cadastro de ações. ......................................................................... 48
Figura 13 – Tela consulta cotações. .......................................................................... 49
Figura 14 – Tela detalhamento de cotações. ............................................................ 50
Figura 15 – Tela atualização de cotações. ................................................................ 50
Figura 16 – Arquivo XML resultado da cotação pela BM&FBOVESPA. .................... 51
Figura 17 – Arquivo CSV resultado da cotação pelo Yahoo Finanças. ..................... 54
Figura 18 – Tela consulta carteira de ações.............................................................. 54
Figura 19 – Tela movimentação da carteira. ............................................................. 55
Figura 20 – Tela edição da carteira. .......................................................................... 56
Figura 21 – Tela consulta indexador. ........................................................................ 57
Figura 22 – Trecho de código fonte utilizado para consumir o Web Service do
BACEN. ................................................................................................. 58
Figura 23 – Arquivo XML resultado da consulta ao Web Service do BACEN. .......... 59
LISTA DE TABELAS
Tabela 1 – Vendas mundiais de smartphones para usuários finais por Sistema
Operacional no quarto trimestre de 2011 (milhares de unidades) ......... 21
Tabela 2 – Corretoras que disponibilizam aplicativos nativos para dispositivos
móveis ................................................................................................... 32
Tabela 3 – Parâmetros para consultar cotações pelo Yahoo Finanças ................. 53
LISTA DE ABREVIATURAS E SIGLAS
2D 2 Dimensões
3D 3 Dimensões
3G 3rd Generation Mobile Telecommunications
ADT Android Development Tools
AAC Advanced Audio Coding
AMR Adaptive Multi-Rate
API Application Programming Interface
ASCII American Standard Code for Information Interchange
BACEN Banco Central do Brasil
CSS Cascading Style Sheets
CSV Comma Separated Values
DI Depósito Interfinanceiro
DTD Document Type Definitions
EDGE Enhanced Data-Rates for Global Evolution
FEBRABAN Federação Brasileira de Bancos
FTP File Transfer Protocol
GIF Graphics Interchange Format
GPS Global Positioning System
GSM Global System for Mobile Communications
H.264 Padrão internacional de compressão de vídeo
HTTP Hyper Text Transfer Protocol
IDC International Data Corporation
IDE Integrated Development Environment
IPO Initial Public Offering
JDK Java Development Kit
JPG Joint Photographic Experts Group
JVM Java Virtual Machine
MP3 MPEG-1/2 Audio Layer 3; Mídia player 3
MPEG4 Motion Picture Experts Group
OHA Open Handset Alliance
OpenGL Open Graphics Library
PDA Personal Digital Assistant
PNG Portable Network Graphics
RIM Research In Motion
RPC Remote Procedure Calls
SDK Software Development Kit
SGL Scalable Graphics Library
SGS Sistema Gerenciador de Séries Temporais
SMTP Simple Mail Transfer Protocol
SO Sistema Operacional
SOAP Simple Object Access Protocol
SQL Structured Query Language
SSL Secure Socket Layer
UDDI Universal Description, Discovery, and Integration
UML Unified Modeling Language
W3C World Wide Web Consortium
WiFi Wireless Fidelity
WSDL Web Services Description Language
XML Extensible Markup Language
XSLT Extensible Stylesheet Language Transformations
ZIP Formato de arquivo usado para compressão de dados
SUMÁRIO
1. Introdução ........................................................................................................... 13
1.1 Objetivo Geral............................................................................................... 14
1.2 Objetivos Específicos.................................................................................... 14
1.3 Justificativa.................................................................................................... 15
1.4 Escopo e delimitações do trabalho............................................................... 15
1.5 Estrutura do trabalho..................................................................................... 16
2. Dispositivos Móveis / Mobilidade ........................................................................ 17
2.1 Sistemas Operacionais................................................................................. 18
2.1.1 Android.......................................................................................................21
2.1.2 iOS............................................................................................................ 25
2.1.3 Symbian.................................................................................................... 25
2.1.4 RIM (Research In Motion)......................................................................... 26
2.1.5 Bada.......................................................................................................... 26
2.1.6 Windows Phone........................................................................................ 27
3. Mercado de Ações e seus dados ........................................................................ 28
3.1 Mobilidade e acesso a dados do mercado de ações................................... 31
4. Métodos de integração entre Android ................................................................. 33
4.1 Tecnologias envolvidas................................................................................ 33
4.1.1 Arquivo texto............................................................................................. 33
4.1.2 Arquivo compactado (ZIP)........................................................................ 33
4.1.3 CSV (Comma Separated Values)............................................................. 34
4.1.4 XML (Extensible Markup Language)......................................................... 34
4.1.5 Web Service.............................................................................................. 36
4.1.6 SQLite....................................................................................................... 38
4.1.7 Java.......................................................................................................... 39
4.2 Metodologia.................................................................................................. 41
4.2.1 Levantamento de requisitos...................................................................... 41
4.2.1.1 Requisitos funcionais............................................................................ 41
4.2.1.2 Requisitos não funcionais..................................................................... 42
4.2.1.3 Restrições............................................................................................. 42
4.2.2 Modelagem............................................................................................... 42
4.2.2.1 Diagrama de Casos de Uso................................................................. 42
4.2.2.2 Especificação de Casos de Uso........................................................... 43
4.2.2.3 Diagrama de Classes........................................................................... 44
4.2.2.4 Diagrama de Sequência....................................................................... 44
4.2.2.5 Diagrama Entidade Relacionamento.................................................... 45
4.2.3 Desenvolvimento...................................................................................... 45
5. Resultados Obtidos ............................................................................................ 60
6. Considerações Finais ......................................................................................... 61
6.1 Trabalhos Futuros ........................................................................................... 61
REFERÊNCIAS ......................................................................................................... 63
APÊNDICES .............................................................................................................. 68
ANEXOS ................................................................................................................... 94
13
1. Introdução
Os dispositivos móveis estão cada vez mais presentes no cotidiano das
pessoas (GOOGLE, 2012a). Com os avanços tecnológicos estes dispositivos
começaram a apresentar recursos de hardware e software antes só encontrados em
computadores (LEE; SCHNEIDER; SCHELL, 2005, p. 50).
Tendo como principal diferencial a mobilidade, os dispositivos móveis
possibilitam que atividades como acessar a internet, ler e-mails, assistir a vídeos,
ouvir músicas e até mesmo executar transações financeiras possam ser executadas
onde e quando se queira, como demonstra um estudo realizado pelo Google
(2012a), que aponta que 96% dos usuários de smartphones utilizam seus
equipamentos em casa, 82% no trabalho, 69% em restaurantes, 66% em lojas, 64%
no trânsito, 60% no transporte público, 53% em consultórios médicos e 49% em
aeroportos e escolas.
A quantidade de dispositivos móveis vêm crescendo a cada dia, e pesquisas
realizadas pela Cisco (2012) apontam que ao final de 2012 a quantidade
ultrapassará a população mundial e até 2016 haverão mais de 10 bilhões de
unidades frente a uma população estimada de 7,3 bilhões.
No Brasil não é diferente, de acordo com o IDC em 2011 foram vendidos
aproximadamente 9 milhões de smartphones, um crescimento de 84% em relação
ao ano de 2010, 50% destes dispositivos apresentaram o sistema operacional
Android (IDC, 2012a).
O mercado de tablets também vem apresentando crescimento no Brasil,
somente no primeiro trimestre de 2012 foram vendidos mais de 370 mil tablets, dos
quais 61% com o sistema operacional Android, a previsão é de que até o final de
2012 sejam vendidos 2,5 milhões de unidades e para o ano de 2013 este número
deve alcançar a marca de 4 milhões (IDC, 2012b).
Acompanhando o crescimento do número de dispositivos, cresce também a
quantidade de aplicativos necessários para atender esta demanda, em 2011 foram
baixados 23 bilhões de aplicativos no mundo e as projeções mostram que estes
números devem chegar em 32 bilhões em 2012, apresentando um crescimento de
38% (STRATEGY ANALYTICS, 2012).
A utilização de aplicativos para a área financeira, embora ainda não
apresente números tão expressivos, também vem apresentando um crescimento
14
considerável, como demonstra a FEBRABAN (2012). No Brasil o ano de 2011
apresentou um crescimento de 50% em relação ao ano de 2010 nas operações
bancárias realizadas por meio de smartphones e tablets, e se esta taxa de
crescimento persistir entre cinco e sete anos o mobile banking alcançará a mesma
relevância do internet banking.
1.1 Objetivo Geral
Criação de um protótipo de aplicativo para acompanhar a posição dos ativos
de uma carteira de ações.
1.2 Objetivos Específicos
Criação de um protótipo de aplicativo para acompanhar a posição dos
ativos da carteira de ações para a plataforma Android;
Criação de mecanismos para a atualização de cotações e indexador
utilizando “provedores” disponíveis no mercado. Serão utilizados os
seguintes métodos de integração:
o Atualização das cotações através de arquivo texto compactado
disponibilizado pela BM&FBOVESPA: o protótipo fará o download
do arquivo compactado, descompactará e fará a leitura do arquivo
texto com as informações das cotações;
o Atualização das cotações através de arquivo XML disponibilizado
pela BM&FBOVESPA: o protótipo fará uma requisição HTTP que
retornará um arquivo XML, do qual fará a leitura das informações
das cotações;
o Atualização das cotações através de arquivo CSV disponibilizado
pelo Yahoo Finanças: o protótipo fará download e leitura do
arquivo CSV com as informações das cotações;
o Atualização do indexador DI através de Web Service
disponibilizado pelo Banco Central do Brasil: o protótipo irá
consumir o Web Service para consultar as informações do
indexador.
Utilizar a tecnologia Java para o desenvolvimento do protótipo.
15
1.3 Justificativa
Devido à volatilidade do mercado de ações é de extrema importância para o
investidor estar atento às oscilações dos preços das ações, atribuídos através das
cotações, o que demanda uma maior aproximação entre o investidor e o seu
investimento, que deverá receber atenção especial desde o momento da compra
das ações até a fase de acompanhamento do seu portfólio.
De acordo com a BM&FBOVESPA (2012c) no mercado de ações o “acesso
rápido à informação é uma estratégia fundamental para a realização de bons
negócios”, desta forma a disponibilização de uma ferramenta que possibilite ao
investidor acompanhar a posição dos ativos de seu portfólio em dispositivos móveis
com o sistema operacional Android se torna um diferencial interessante, pois desta
forma serão aproveitados todos os diferenciais dos dispositivos móveis em uma
plataforma presente na maioria dos smartphones e tablets vendidos atualmente,
conforme demonstram pesquisas recentes.
1.4 Escopo e delimitações do trabalho
O escopo deste trabalho consiste na construção de um protótipo de
aplicativo para acompanhar a posição dos ativos de uma carteira de ações, o qual
funcionará em dispositivos com o sistema operacional Android e implementará
integrações com outras tecnologias para permitir a atualização de cotações e
indexador.
O protótipo resultante deste trabalho não pretende ser um aplicativo
completo, não contemplando desta forma as seguintes funcionalidades:
Autenticação de usuário;
Acompanhamento da posição de ativos dos mercados de opções, a
termo e futuro.
Manter histórico de movimentações, saldos e cotações;
Manutenção da tabela de indexador.
16
1.5 Estrutura do trabalho
Este trabalho está divido em 6 capítulos, neste primeiro capítulo foi
apresentada uma introdução ao assunto tema do trabalho, os objetivos geral e
específicos, a justificativa, o escopo e delimitações do trabalho.
O capítulo 2 destina-se a apresentar os conceitos relacionados aos
dispositivos móveis e mobilidade, bem como características dos principais sistemas
operacionais disponíveis no mercado para estes dispositivos.
O capítulo 3 descreve conceitos referentes ao mercado de ações, além de
apresentar informações sobre as ferramentas disponíveis atualmente para este
segmento e destinadas aos dispositivos móveis.
O capítulo 4 apresenta as tecnologias, ferramentas e metodologia utilizadas
para o desenvolvimento do protótipo.
O capítulo 5 demonstra os resultados obtidos com o desenvolvimento deste
trabalho.
O capítulo 6 descreve as conclusões finais, contribuições e sugestões de
trabalhos futuros.
Por último, são apresentadas as referências, os apêndices e anexos
utilizados para a elaboração deste trabalho.
17
2. Dispositivos Móveis / Mobilidade
Segundo Lee, Schneider e Schell (2005, p. 1) mobilidade pode ser definida
como a capacidade de poder se deslocar ou ser deslocado facilmente e, no contexto
da computação móvel se refere ao uso de dispositivos móveis que ofereçam a
capacidade de realizar um conjunto de funções de aplicações, além de serem
capazes de conectar-se, obter dados e fornecê-los a outros usuários, aplicações e
sistemas. Para isso tais dispositivos devem possuir determinadas características
como: portabilidade, usabilidade, funcionalidade e conectividade.
Para Johnson (2007, p. 20) computação móvel permite que os usuários
tenham acesso a serviços independentes da sua localização, o que requer suporte à
mobilidade e existência de infraestrutura de comunicações sem fio, a figura 1
exemplifica um cenário de computação móvel, em que as redes de telefonia celular
e as redes sem fio são a infraestrutura necessária para o acesso aos serviços
móveis.
Figura 1 – Representação de um cenário de computação móvel.
Fonte: Johnson (2007, p. 21).
Existem vários tipos de dispositivos móveis encontrados no mercado e
algumas diferenças nas suas características fazem com que sejam classificados de
diversas maneiras (LEE; SCHNEIDER; SCHELL, 2005, p. 42).
18
Para Johnson (2007, p. 22) os dispositivos móveis são classificados em
laptops (ou notebooks), PDAs (Personal Digital Assistant) e telefones celulares, já
Lee, Schneider e Schell (2005, p. 42) incluem também os pagers/RIM, tablet PCs e
híbridos. De acordo com Lee, Schneider e Schell (2005, p. 43-49), os dispositivos
móveis podem ser:
Laptops: Computadores móveis com capacidade equivalente a um
computador desktop.
PDAs: Computadores de dimensões reduzidas que possuíam
inicialmente funções de assistente pessoal. Dispositivos mais
modernos incluíram funções de e-mail, acesso à internet, jogos,
aplicações personalizadas.
Telefones celulares: Inicialmente criados para oferecer funções de
telefonia móvel, atualmente oferecem funções como: envio e
recebimento de mensagens de texto e multimídia, rádio FM, câmera,
acesso a internet, jogos e aplicações personalizadas.
Pagers/RIM: Aparelhos utilizados para contatar pessoas através de um
serviço de mensagens. Para fazer uma chamada a um pager a pessoa
telefona para um serviço de mensagens, fornece o número do
dispositivo e a mensagem que será repassada ao proprietário.
Posteriormente foram adicionadas funções como: troca de mensagens
de duas vias e serviço de e-mail.
Tablet PCs: Computadores móveis em forma de prancheta que
apresentam como diferencial uma tela interativa sensível ao toque.
Híbridos: Combinam as funções primárias de certos dispositivos. Como
exemplo, temos os smartphones que integram as funções dos PDAs
com as funções dos telefones celulares.
2.1 Sistemas Operacionais
Segundo Jipping (2007, p. 2-3) existem várias definições para sistema
operacional, mas todas elas apresentam alguns pontos em comum:
Um sistema operacional é um software: Não importa o local em que
seja armazenado em algum momento ele será carregado em memória
e suas instruções serão executadas como qualquer outro programa.
19
Um sistema operacional é um modelo de recursos: Ele é projetado para
apresentar os recursos do hardware aos softwares e usuários, ele
constrói um modelo, um sistema através do qual os usuários visualizem
e utilizem os recursos.
Um sistema operacional vincula o hardware ao software: O software
reconhece e acessa o hardware como é apresentado através do
modelo do sistema operacional.
Um sistema operacional é essencial: Sem um sistema operacional
nenhum software conseguiria ser executado e o hardware não teria
como ser utilizado.
A figura 2 demonstra um exemplo do funcionamento de um sistema
operacional na execução de um aplicativo gerenciador de mensagens em um
celular. Hardware é a parte física, é o conjunto de todos os componentes que
formam o aparelho. Software é o conjunto de aplicativos que executam suas
instruções com o objetivo de acessar algum recurso do hardware e fazem isso
através do sistema operacional.
Um gerenciador de mensagens deve receber as mensagens, armazenar,
apresentar ao usuário e possibilitar que ele apague, responda ou envie novas
mensagens. Para isso o hardware recebe sinais de rádio e notifica o sistema
operacional que os dados estão chegando, o sistema operacional trabalhando em
conjunto com o hardware verifica a fonte do envio e utiliza o protocolo de dados
apropriado para o recebimento. Após o término do recebimento da mensagem o
sistema operacional armazena e notifica o aplicativo gerenciador que usa o sistema
operacional para acessar a mensagem e apresentar ao usuário. O usuário ao
responder ou criar uma nova mensagem dará os comandos ao aplicativo que
acessará o sistema operacional para criar uma nova mensagem, o sistema
operacional então acessará o hardware para armazenar e transmitir a mensagem.
20
Figura 2 – Relação entre hardware, sistema operacional e software.
Fonte: Adaptado de Jipping (2007, p. 4).
Ao implementar uma aplicação para um dispositivo móvel é importante
considerar o sistema operacional do dispositivo (LEE; SCHNEIDER; SCHELL, 2005,
p. 53), atualmente existem vários sistemas operacionais para dispositivos móveis
disponíveis no mercado, a tabela 1 demonstra os sistemas operacionais que
estiveram nos smartphones vendidos no 4º trimestre de 2011 (Gartner, 2012).
21
Tabela 1 – Vendas mundiais de smartphones para usuários finais por Sistema
Operacional no quarto trimestre de 2011 (milhares de unidades)
Sistema Operacional 4º Trimestre
2011
Unidades
4º Trimestre
2011
Mercado (%)
4º Trimestre
2010
Unidades
4º Trimestre
2010
Mercado (%)
Android 75.906,1 50,9 30.801,2 30,5
iOS 35.456,0 23,8 16.011,1 15,8
Symbian 17.458,4 11,7 32.642,1 32,3
Research In Motion 13.184,5 8,8 14.762,0 14,6
Bada 3.111,3 2,1 2.026,8 2,0
Windows Phone 2.759,0 1,9 3.419,3 3,4
Outros 1.166,5 0,8 1.487,9 1,5
Total 149.041,8 100,0 101.150,3 100,0
Fonte: Adaptado de Gartner (2012).
Conforme demonstrado pela tabela 1, Android é o sistema operacional que
esteve presente em mais da metade dos smartphones vendidos no 4º trimestre de
2011, seguido de iOS, Symbian, RIM (Research In Motion), Bada e Windows Phone,
os quais serão descritos a seguir.
2.1.1 Android
Android é um sistema operacional open source para dispositivos móveis
originalmente desenvolvido por uma empresa de mesmo nome, a Android Inc. (LEE,
2011, p. 2), empresa fundada em 2003 que desenvolvia sistemas operacionais para
dispositivos móveis (BLOOMBERG, 2012).
Em 2005 o Google comprou a Android Inc. como parte de sua estratégia
para entrar no mercado de dispositivos móveis, assumindo então o desenvolvimento
da plataforma (LEE, 2011, p. 2) que posteriormente passou ao controle da Open
Handset Alliance (OHA) sob sua supervisão. A OHA é uma aliança multinacional
formada por grandes empresas de tecnologia e líderes da indústria móvel que tem
como objetivo promover a inovação em dispositivos móveis, a OHA foi anunciada
em novembro de 2007, momento em que também foi revelada a plataforma Android
(OHA, 2007).
Segundo Google (2012b) as principais características do Android são:
22
Framework de desenvolvimento que permite a reutilização e
substituição de componentes;
Máquina virtual Dalvik otimizada para dispositivos móveis;
Navegador integrado;
Gráficos otimizados;
SQLite para armazenamento de dados estruturados;
Suporte para formatos comuns de áudio, vídeo e imagem (MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF);
Tecnologia GSM;
Bluetooth, EDGE, 3G e WiFi;
Câmera, GPS, bússola e acelerômetro;
Rico ambiente de desenvolvimento, incluindo emulador, ferramentas de
depuração, memória e perfil de desempenho, e um plugin para o IDE
Eclipse.
A arquitetura do Android é dividida em 5 camadas como pode ser
visualizado na figura 3, cada camada será descrita na sequência.
Figura 3 – Arquitetura Android.
Fonte: Adaptado de Google (2012b).
23
a) Aplicações: Conjunto de aplicativos essenciais como cliente de e-mail, SMS,
mapas, navegador, calendário, contatos entre outros.
b) Framework de Aplicação: Os desenvolvedores tem acesso total à mesma
estrutura de APIs (Application Programming Interface) utilizada pelos aplicativos
principais do sistema, algumas APIs serão descritas a seguir:
Activity Manager: Gerencia o ciclo de vida das aplicações;
Window Manager: Gerencia as janelas das aplicações.
Content Providers: Permitem que as aplicações acessem os dados de
outras aplicações ou compartilhem os seus próprios dados.
View System: Conjunto rico e extensível de componentes de interface
de usuário.
Package Manager: Mantém informações sobre as aplicações
instaladas no dispositivo.
Telephony Manager: Fornece acesso aos recursos de telefonia
(FELKER; DOBBS, 2011, p. 28).
Resource Manager: Fornece acesso a recursos gráficos e arquivos de
layout.
Location Manager: Fornece a localização geográfica do dispositivo
(FELKER; DOBBS, 2011, p. 28).
Notification Manager: Permite que todas as aplicações exibam alertas
personalizados na barra de status.
c) Bibliotecas: Conjunto de bibliotecas C/C++ usadas por diversos componentes
do sistema Android, algumas bibliotecas são descritas a seguir:
Surface Manager: Gerencia o acesso ao subsistema de display e
compõe as camadas gráficas 2D e 3D;
Media Framework: Baseado em PacketVideo's OpenCORE, as
bibliotecas suportam reprodução e gravação de muitos formatos de
áudio e vídeo, bem como arquivos de imagem, incluindo MPEG4,
H.264, MP3, AAC, AMR, JPG e PNG;
SQLite: Banco de dados relacional à disposição de todos os
aplicativos;
OpenGL ES (3D Libraries): Implementação baseada no OpenGL ES
1.0 APIs onde as bibliotecas utilizam aceleração 3D via hardware
24
quando disponível ou o software de renderização 3D altamente
otimizado;
FreeType: Utilizada para renderizar de fontes vetoriais;
WebKit (LibWebCore): Engine do navegador web que fornece a
funcionalidade para exibir conteúdo da Web e simplificar o
carregamento da página (FELKER; DOBBS, 2011, p. 27);
SGL: Engine gráfica 2D;
SSL: Responsável pela segurança na Internet (FELKER; DOBBS,
2011, p. 28);
libc (System C library): Implementação da biblioteca C (libc) para
dispositivos baseados em Linux;
d) Tempo de Execução: Responsável pela execução dos aplicativos e possui a
seguinte divisão:
Core Libraries: Conjunto de bibliotecas que fornecem a maioria das
funcionalidades disponíveis nas principais bibliotecas da linguagem de
programação Java.
Dalvik Virtual Machine: Um dos elementos chave da plataforma Android
é a máquina virtual Dalvik que funciona como uma camada
intermediária na execução de todo aplicativo, desta maneira os
desenvolvedores tem uma camada de abstração que garante a
execução do aplicativo sem se preocupar com o hardware do
dispositivo. Cada aplicação Android roda em um processo próprio que
é uma instância da máquina virtual Dalvik, a qual interpreta o código
para execução no dispositivo (MEIER, 2009, p. 14).
e) Kernel Linux: O Android conta com o Linux na versão 2.6 para gerenciar os
serviços essenciais para o seu funcionamento, algumas das suas características
incluem: drivers de hardware, gerenciamento de processos, gerenciamento de
memória, segurança, rede e gerenciamento de energia (FELKER; DOBBS, 2011, p.
27). O núcleo atua como uma camada de abstração entre hardware e software
(MEIER, 2009, p. 13).
25
2.1.2 iOS
O iOS é um sistema operacional da Apple, lançado em 2007 junto com o
iPhone. Inicialmente as aplicações de terceiros não eram permitidas, mas
posteriormente em 2008 a Apple lançou a primeira versão do SDK (Software
Development Kit) para os desenvolvedores (WIKIPÉDIA, 2012).
Pesquisas recentes apontaram o iOS em segundo lugar em vendas entre os
smartphones, ficando atrás apenas do Android (GARTNER, 2012).
Algumas das características do iOS são: multitarefa, multiprocessamento,
fácil migração dos aplicativos entre os dispositivos que utilizam o iOS, todos os
usuários do iOS recebem as atualizações que são amplamente divulgadas, e os
aplicativos disponíveis passam por um processo rigoroso de aprovação evitando
assim a disseminação de softwares maliciosos (GONÇALVES, 2011).
2.1.3 Symbian
O Symbian foi baseado no sistema operacional EPOC da empresa Inglesa
Psion que produzia computadores de mão na década de 90. Como as oportunidades
mais interessantes estavam no negócio de telefonia móvel e os fabricantes estavam
à procura de um novo sistema operacional avançado, Psion e outras empresas
como Nokia, Ericsson, Motorola e Matsushita (Panasonic) formaram um consórcio
chamada Symbian, tomaram posse e desenvolveram a partir do núcleo do EPOC
um novo sistema operacional que passou a ser chamado de Symbian OS (JIPPING,
2007, p. 10-11). Após dez anos de parceria, em 2008 a Nokia anunciou a compra da
Symbian Ltd., incluindo os direitos autorais sobre o sistema operacional, momento
em que também anunciou a abertura do código fonte e a transferência do
desenvolvimento para uma fundação neutra, a Symbian Foundation (alguns
membros desta fundação foram Nokia, Samsung, Sony Ericsson, Vodafone, entre
outros) (BUDAG, 2010). Alguns meses depois, com a saída de Samsung e Sony
Ericsson em favor do Android a Nokia assumiu o controle do Symbian OS
(MONQUEIRO, 2010), porém com a popularização do Android e iOS e visando uma
maior competitividade frente a estas plataformas, realizou uma parceria com a
Microsoft para utilizar o Windows Phone em seus principais aparelhos, não tendo
mais interesse em assumir a frente na continuação do Symbian (BURGOS, 2011).
26
Apesar da grande diminuição na quantidade de vendas de dispositivos com
Symbian (GARTNER, 2012), pesquisas apontaram o Symbian como o sistema
operacional mais usado para acessar a web em dispositivos móveis em 2011
(PINGDOM, 2011). Algumas de suas características são: multitarefa,
multiprocessamento, sistema de arquivos compatível com Windows, baixo consumo
de memória e bateria e execução de aplicações Java (JIPPING, 2007).
2.1.4 RIM (Research In Motion)
RIM (Research In Motion) é uma empresa canadense de telecomunicações
responsável pelo sistema operacional presente em aparelhos BlackBerry
(BLACKBERRY SPY SOFTWARE, 2012).
O primeiro BlackBerry chegou ao mercado em 1999 como um pager bi-
direcional que podia ser integrado aos servidores de e-mail corporativos, criando
uma solução de e-mail móvel (GUIA DO HARDWARE, 2012). No ano de 2002 foi
lançado no mercado da maneira que conhecemos hoje, incluindo funções como
navegação web, acesso a e-mails, mensagens de texto e funções de celular
(BLACKBERRY SPY SOFTWARE, 2012).
A plataforma BlackBerry garante a segurança das informações, incluindo em
seu sistema operacional funções específicas de autenticação de usuários,
criptografia dos dados, administração remota e controle dos recursos do dispositivo,
posicionando a plataforma como a mais segura do mercado, fato este que contribuiu
para que o BlackBerry se tornasse o smartphone oficial do governo dos Estados
Unidos (BLACKBERRY MAGAZINE, 2012).
2.1.5 Bada
O Bada (oceano em coreano) é um sistema operacional desenvolvido pela
Samsung que foi lançado em 2010 (BADA, 2012c), algumas de suas características
são: personalização da tela inicial através de criação de widgets e atalhos de
aplicativos e pastas, multitarefa, comando por voz, aplicativos relacionados às redes
sociais e compartilhamento de arquivos com o recurso AllShare que permite ao
usuário transmitir arquivos de imagem e vídeo para uma TV via Wi-Fi (BADA,
2012b).
27
A plataforma disponibiliza uma grande variedade de recursos que permite ao
desenvolvedor criar aplicações ricas e complexas.
Para o suporte ao desenvolvimento é disponibilizado um conjunto de
ferramentas que inclui um compilador, depurador, simulador, documentação e
exemplos de aplicações, além de um IDE baseado em Eclipse para facilitar o
desenvolvimento (BADA, 2012a).
2.1.6 Windows Phone
O Windows Phone é o sucessor da linha da Microsoft para sistemas
operacionais em dispositivos móveis, baseado no Windows CE 6. Foi lançado em
2010 (ZIEGLER, 2010), tem como principal característica a utilização de uma nova
interface gráfica inovadora chamada de Metro (ROCHA, 2011). A interface Metro foi
projetada para tornar a experiência dos usuários mais agradável e para isso utiliza
títulos e botões maiores, além de transições suaves para navegação entre as telas
(DAQUINO, 2011).
Em pesquisa realizada pelo Gartner (GARTNER, 2012) o sistema
operacional da Microsoft encontra-se em sexto lugar entre os smartphones vendidos
no quarto trimestre de 2011 com 1,9% do mercado. Apesar dos baixos números,
projeções realizadas pelo IDC (IDC, 2011) afirmam que em 2015 a plataforma
ocupará o segundo lugar com 20,3% do mercado, ficando atrás somente do Android.
28
3. Mercado de Ações e seus dados
É através do mercado acionário que uma companhia ou sociedade anônima
capta recursos para o seu desenvolvimento patrimonial, para isso elas vendem a
participação no seu patrimônio, representado por suas ações. Ao vender suas
ações, a empresa assume o compromisso de remunerar os seus acionistas
proporcionalmente ao capital por eles aplicado (FORTUNA, 2010, p. 691).
Para Lima, Lima e Pimentel (2012, p. 32) “ação é a menor parcela em que o
capital social de uma companhia ou sociedade anônima é dividido [...]”, segundo
Fortuna (2010, p. 691) as ações podem ser ordinárias, que garantem ao acionista o
direito a voto, ou preferenciais, que garantem ao acionista prioridade sobre as ações
ordinárias no recebimento dos lucros a serem distribuídos.
As ações são títulos de renda variável, uma vez que a sua remuneração
depende de eventos futuros e incertos (LIMA; LIMA; PIMENTEL, 2012, p. 31) e os
ganhos obtidos no mercado de ações segundo Pinheiro (2012, p. 221-224) podem
ser:
Dividendos: É a distribuição de parte dos lucros da empresa aos seus
acionistas. O pagamento ocorre em moeda corrente na proporção da
quantidade de ações de cada acionista.
Bonificações: É a distribuição gratuita de novas ações aos acionistas
proporcionalmente à quantidade já possuída.
Juros sobre capital próprio: É uma remuneração normalmente paga em
dinheiro que é originada dos lucros retidos em períodos anteriores.
Desdobramento (Split): É a distribuição gratuita de novas ações aos
acionistas, resultado da diluição do capital em um número maior de
ações, tem como objetivo dar liquidez aos títulos no mercado.
Agrupamento (Inplit): É a condensação do capital da empresa em
número menor de ações, acarreta no aumento do valor de mercado e
tem como objetivo valorizar a ação no mercado.
Subscrição: É o direito dos acionistas de adquirir novas ações
resultantes de aumento de capital da empresa, em prazo e preço
determinados.
29
Comercialização: É o ganho (ou perda) obtido ao negociar uma ação,
decorrente da valorização (ou desvalorização) do seu preço de
mercado, é segundo Fortuna (2010, p. 693) resultante das condições
de mercado (oferta e demanda) e das condições da economia do país,
da empresa e de seu setor econômico.
De acordo com Lima, Lima e Pimentel (2012, p. 31) e Fortuna (2010, p. 691-
692) o mercado de ações é dividido em dois segmentos:
Mercado primário: Onde ocorre a colocação ou subscrição inicial de
ações no mercado (underwriting) visando obtenção de recursos à
empresa emissora. A distribuição de ações realizada pela primeira vez
é conhecida como “oferta pública inicial” ou IPO (initial public offering)
(LIMA; LIMA; PIMENTEL, 2012, p. 32).
Mercado secundário: Onde ocorrem as negociações de compra e
venda de ações já emitidas. As negociações ocorrem em bolsa de
valores e mercados de balcão entre os investidores, não ocorrendo
desta forma a entrada de novos recursos para a empresa (LIMA; LIMA;
PIMENTEL, 2012, p. 41). Para Pinheiro (2012, p. 176) a função do
mercado secundário é dar liquidez ao investidor, possibilitando que no
momento que ele decida vender suas ações exista um comprador e
vice versa. Qualquer participação de um investidor no mercado de
ações só poderá ocorrer por intermediação de uma instituição
financeira credenciada a operar com ações, as corretoras de valores
(PINHEIRO, 2012, p. 175).
Atualmente existe apenas uma bolsa de valores no Brasil, a
BM&FBOVESPA - Bolsa de Valores, Mercadorias e Futuros, a qual é responsável
por oferecer as condições e o ambiente necessário para a realização das
negociações de compra e venda de ações (LIMA; LIMA; PIMENTEL, 2012, p. 41),
essas negociações ocorrem em local definido como “pregão” por intermediação do
“Mega Bolsa”, descritos a seguir:
Pregão: Era o recinto físico onde os operadores da bolsa de valores se
reuniam para executar as ordens de compra e venda recebidas pelas
corretoras, com o avanço da tecnologia da informação os pregões
começaram a ser automatizados (FORTUNA, 2010, p. 695-696), e a
30
partir de julho de 2009 são realizados apenas pregões por sistemas
eletrônicos na BM&FBOVESPA (LIMA; LIMA; PIMENTEL, 2012, p. 46).
Mega Bolsa: É o sistema eletrônico de negociação da
BM&FBOVESPA, permite a criação das ordens por meio de terminais
de computador e executa o fechamento automático das negociações
em seus servidores (LIMA; LIMA; PIMENTEL, 2012, p. 46).
Segundo Lima, Lima e Pimentel (2012, p. 43) aproveitando a popularização
do uso da informática e internet, o ano de 1999 foi marcado pelos avanços na área
de tecnologia de informação para o mercado de ações da BM&FBOVESPA, visando
facilitar e viabilizar a participação do pequeno e médio investidor foram
implementados os seguintes conceitos de negociação:
Home Broker: É um ambiente no qual os investidores por intermédio do
site das corretoras de valores podem transmitir suas ordens de compra
ou venda diretamente ao sistema de negociação das bolsas de valores.
As principais vantagens na sua utilização são: flexibilidade e
comodidade para realizar as operações de qualquer local com acesso
à internet, acompanhamento da carteira de ações, consulta às
cotações em tempo real e resumo financeiro.
After Market: É uma sessão noturna de negociação eletrônica que além
de atender aos profissionais do mercado, garante a possibilidade aos
pequenos e médios investidores que não dispõem de tempo durante
dia, operarem no período noturno.
De acordo Lima, Lima e Pimentel (2012, p. 42) existem quatro formas
básicas de negociação com ações, são elas:
Operações à Vista: São operações de compra ou venda de uma
determinada quantidade de ações para liquidação imediata. O
pagamento pelo comprador e a entrega das ações pelo vendedor
ocorre no terceiro dia útil após a negociação.
Operações a Termo: São contratos onde o investidor se compromete a
comprar ou vender determinada quantidade de ações por um preço e
prazo determinado, o prazo pode variar entre 16 e 999 dias e de
acordo com Fortuna (2010, p. 707) a maioria dos contratos é realizada
no prazo de 30 dias.
31
Operações com Opções: São contratos que garantem ao investidor o
direito de comprar ou vender uma determinada ação dentro de um
prazo e valor estipulado. Fortuna (2010, p. 714) exemplifica que o
investidor que compra uma opção tem um direito, se a opção for de
compra (call), o direito de comprar, se a opção for de venda (put), o
direito de vender.
Operações no mercado futuro: São contratos de compra ou venda de
ações para liquidação em uma data futura e preço acordado entre as
partes. Para Fortuna (2010, p. 711) as operações no mercado futuro
são um aperfeiçoamento das operações a termo, permitindo aos
participantes reverterem de forma automática sua posição antes do
vencimento.
Fortuna (2010, p. 702) destaca que são permitidas as operações
denominadas como day trade, que são operações de compra e venda de uma
mesma ação, em um mesmo pregão, pela mesma corretora e investidor, essas
operações dão ao investidor a possibilidade de obtenção de lucro (ou prejuízo)
aproveitando as oscilações no preço de mercado ocorridas durante o pregão.
3.1 Mobilidade e acesso a dados do mercado de ações
Para BM&FBOVESPA (2012c) o “acesso rápido à informação é uma
estratégia fundamental para a realização de bons negócios” e visando difundir a
informação entre os investidores e participantes do mercado ela disponibiliza
diversos serviços de divulgação de informações, entre eles aplicativos para
dispositivos móveis com iOS e Android. Esses aplicativos permitem ao investidor o
monitoramento de seus ativos, acompanhamento de cotações e acesso a notícias
do mercado em tempo real (BM&FBOVESPA, 2012a).
De acordo com Wiltgen (2012) acompanhando o crescimento do mercado de
dispositivos móveis, várias corretoras de valores começaram a oferecer versões
móveis de seus home brokers, os chamados mobile brokers. Segundo a
BM&FBOVESPA (2012b) aproximadamente 40% das corretoras de valores
credenciadas a operar no mercado de ações disponibilizam aplicativos para
dispositivos móveis que implementam funcionalidades como: acompanhamento de
32
cotações em tempo real, negociação de ações, notícias do mercado e resumo
financeiro.
O acesso às informações do mercado de ações através de dispositivos
móveis vem crescendo a cada dia, conforme demonstra Wiltgen (2012). Em algumas
corretoras aproximadamente 30% dos clientes ativos utilizam as novas ferramentas
para estas plataformas.
A tabela 2 demonstra as aplicações nativas disponibilizadas pelas corretoras
para dispositivos móveis, e seus respectivos sistemas operacionais. Estas
aplicações apresentam funcionalidades como: notícias, cotações on-line, gráficos e
compra e venda de ações.
Tabela 2 – Corretoras que disponibilizam aplicativos nativos para dispositivos
móveis.
Corretora Android iPhone (iOS) iPad (iOS)
ALPES - SIM -
ATIVA SIM SIM SIM
BANIF - - SIM
BRADESCO - SIM SIM
CODEPE SIM SIM -
COINVALORES - SIM SIM
CRUZEIRO DO SUL SIM SIM -
H.COMMCOR SIM SIM SIM
INTERBOLSA SIM SIM SIM
ITAÚ SIM SIM SIM
MIRAE ASSET SIM SIM SIM
OCTO SIM SIM SIM
SPINELLI SIM SIM SIM
TÍTULO - SIM -
TOV SIM SIM SIM
UM INVESTIMENTOS - SIM SIM
XP INVESTIMENTOS - SIM -
Fonte: Autoria própria
33
4. Métodos de integração entre Android
Este capítulo apresenta a metodologia, tecnologias e ferramentas utilizadas
para o desenvolvimento do protótipo proposto.
4.1 Tecnologias envolvidas
Nesta seção serão apresentados conceitos referentes às tecnologias
envolvidas no desenvolvimento do protótipo, são elas: arquivo texto, arquivo
compactado, CSV, XML, Web Service, SQLite e Java.
4.1.1 Arquivo texto
Segundo Dale e Lewis (2002, p. 351) arquivos texto são arquivos que
contêm caracteres, onde os bytes de dados são organizados como um conjunto de
caracteres ASCII ou Unicode. Como a informação está representada em caracteres,
fica mais fácil para uma pessoa ler e modificar o seu conteúdo.
Qualquer editor de texto pode ser usado para criar, visualizar e alterar o
conteúdo de um arquivo de texto, não importa qual o tipo específico de informação
que ele esteja armazenando.
4.1.2 Arquivo compactado (ZIP)
Arquivos ZIP são arquivos que contêm um ou mais arquivos compactados
(HORSTMANN; CORNELL, 2000, p. 723).
Segundo Morimoto (2002, p. 275) a compactação de arquivos é um recurso
que sempre foi muito utilizado e através deste processo podemos diminuir a
quantidade de espaço necessário para armazenar arquivos e programas. A
compactação é um simples processo de substituição, onde são localizadas
informações repetitivas e substituídas por informações menores.
Inicialmente a compactação de arquivos era utilizada devido às limitações de
espaço para armazenamento dos equipamentos. Posteriormente com a diminuição
do custo para armazenamento a necessidade de compactar os arquivos é para
compartilhar com outras pessoas, diminuindo desta forma o tempo de transferência
34
na Web ou outras redes que possuem limitações de largura de banda (DALE;
LEWIS, 2002, p. 52).
4.1.3 CSV (Comma Separated Values)
Segundo Borges (2010, p. 77) nos arquivos CSV as informações são
armazenadas em formato texto separados por vírgula e cada linha representa um
registro.
O formato CSV é aceito pela maioria dos sistemas de banco de dados e
planilhas, para importação e exportação de informações (BORGES, 2010, p. 78).
4.1.4 XML (Extensible Markup Language)
XML é uma linguagem de marcação que utiliza tags para rotular, categorizar
e organizar as informações de uma maneira específica. XML não fica limitado a um
conjunto específico de marcações, possibilitando a criação das suas próprias
marcações para atender às suas necessidades (DYKES; TITTEL, 2005, p. 11).
Devido à possibilidade de criação de marcações personalizadas, Ray (2001,
p. 5) não considera XML como uma linguagem de marcação e sim como um
conjunto de regras para a construção de linguagens de marcação e descreve os
seguintes recursos que contribuíram para o sucesso da XML:
Pode armazenar e organizar praticamente qualquer tipo de informação
de uma forma adaptada às suas necessidades.
É um padrão aberto, portanto não está vinculado a uma empresa ou
software específico.
Utiliza o Unicode como seu conjunto de caracteres padrão, suportando
um número grande de sistemas de escrita e símbolos.
Permite criar maneiras de verificar a qualidade de um documento como
DTD (Document Type Definitions) ou XML Schema, possibilitando a
utilização de regras de validação para a sintaxe, tipo de dados,
ligações internas e comparação com modelos de documentos.
Possui uma sintaxe simples e clara, tornando fácil a leitura e análise
dos documentos.
35
Pode ser combinada com folhas de estilo como CSS (Cascading Style
Sheets) e ou XSLT (Extensible Stylesheet Language Transformations)
para criar documentos formatados, possibilitando a visualização da
mesma informação de maneira personalizada.
Veloso (2007, p. 5-6) considera importante e destaca as seguintes
características da XML:
Interoperabilidade: É comum encontrarmos a necessidade de interligar
informações entre sistemas distribuídos com equipamentos que
possuem arquiteturas e sistemas operacionais diferentes e uma das
utilizações da XML é promover a interoperabilidade ou a troca de
informações de maneira simples, barata e rápida.
Organização e personalização: XML representa as informações de
forma hierárquica e organizada, possibilitando separar o conteúdo de
uma determinada informação da sua apresentação.
Autodescrição das informações: Em XML as tags demonstram o tipo de
informação que está por vir, delimitando o início e fim do conteúdo.
A figura 4 demonstra um exemplo de documento XML.
Figura 4 – Exemplo de documento XML.
Fonte: Veloso (2007, p. 6).
De acordo com Dykes e Tittel (2005, p. 18-21) é importante esclarecer
algumas características que são frequentemente atribuídas erroneamente à XML.
É utilizada apenas para páginas da Web: Apesar de a W3C (World
Wide Web Consortium) ter desenvolvido a XML, ela não é utilizada
36
apenas para conteúdos da Web, documentos XML podem ser vistos na
Web quando combinados com folhas de estilos, mas de maneira
nenhuma estão limitados a essa utilização.
É um banco de dados: XML pode ser utilizada para armazenar
informações de maneira estruturada e apresentar características
comuns aos bancos de dados como armazenamento e consulta, mas
não possibilita a criação de relacionamentos, índices, consultas a
vários documentos e segurança, não podendo ser classificada desta
forma como banco de dados.
É uma linguagem de programação: XML pode ser utilizada em conjunto
com linguagens de programação, mas não apresenta recursos como
operadores, loops, funções e instruções condicionais para que possa
ser classificada como tal.
4.1.5 Web Service
Segundo Chappell e Jewell (2002, p. 6-7) um Web Service é uma
implementação de regras de negócio, disponível em algum lugar na internet e
acessível através de protocolos baseados em padrões de internet como HTTP e
SMTP, dentre as suas características destacam-se:
Baseado em XML: Utiliza a XML como camada de representação de
dados garantindo desta forma a interoperabilidade.
Baixo acoplamento: Um consumidor (cliente) de um Web Service não
está vinculado diretamente a ele, desta forma o Web Service pode
mudar ao longo do tempo sem comprometer a capacidade do cliente
de interagir com ele.
Funcionamento síncrono ou assíncrono: Em operações síncronas o
cliente faz a chamada ao serviço e aguarda a sua execução antes de
continuar. Operações assíncronas permitem que o cliente faça a
chamada a um serviço e execute outras operações antes do seu
término.
37
Suporte a RPC (Remote Procedure Calls): Web Service permite que os
clientes façam a chamada a procedimentos, funções e métodos em
objetos remotos usando protocolo baseado em XML.
Suporte a troca de documentos: Web Service possibilita a
representação de documentos, podendo ser simples ou complexos.
Um Web Service é composto pelas seguintes tecnologias (CHAPPELL;
JEWELL, 2002, p. 8):
SOAP (Simple Object Access Protocol): Fornece uma estrutura de
empacotamento padrão para o transporte de documentos XML através
de tecnologias como HTTP, SMTP e FTP. Por ter um mecanismo de
transporte padrão, clientes e servidores de tecnologias diferentes
podem trabalhar em conjunto.
WSDL (Web Services Description Language): Tecnologia que descreve
a interface de um Web Service de uma forma padronizada, ou seja,
demonstra os parâmetros de entrada e saída, permitindo que os
clientes compreendam como interagir com o Web Service.
UDDI (Universal Description, Discovery, and Integration): Fornece um
registro mundial de Web Services, onde as empresas registram e
buscam Web Services disponíveis.
Figura 5 – Simples interação com Web Service.
Fonte: Adaptado de Chappell e Jewell (2002, p. 9).
A relação entre as tecnologias SOAP, WSDL e UDDI é demonstrada pela
figura 5 e pode ser exemplificada da seguinte forma: um cliente precisa localizar um
38
Web Service para uma determinada funcionalidade, ele consulta um registro UDDI
fazendo a busca por nome, categoria, identificador ou especificação. Após a
localização, o cliente obtém informações sobre a localização do WSDL que por sua
vez descreve como realizar a requisição e o formato da mensagem através do XML
schema. O cliente cria então uma mensagem SOAP de acordo com o formato
esperado pelo Web Service e envia uma requisição ao endereço onde ele está
disponível, recebendo em seguida a resposta do Web Service (CHAPPELL;
JEWELL, 2002, p. 9).
4.1.6 SQLite
Kreibich (2010, p. 1) define SQLite como um pacote de software de domínio
público que fornece um sistema gerenciador de banco de dados relacional funcional
e flexível, foi projetado para consumir o mínimo de recursos necessários e eliminar a
complexidade normalmente encontrada em gerenciadores de banco de dados
tradicionais.
Suas principais características são (KREIBICH, 2010, p. 2-6):
Auto-contido (sem servidor): Não possui uma arquitetura
cliente/servidor (não tem um servidor separado), o motor do banco de
dados inteiro é integrado ao aplicativo e o acesso é feito através de
leitura e escrita diretamente nos arquivos de banco de dados
armazenados no disco.
Arquivo de banco de dados único: O banco de dados é empacotado em
um único arquivo independente de plataforma, podendo ser acessado
em qualquer máquina, não importando o formato nativo de
armazenamento em disco.
Configuração Zero: Para o usuário final não exige instalação e
configuração, ainda que existam vários parâmetros de configurações
disponíveis aos desenvolvedores, estes normalmente ficam escondidos
dos usuários finais que nem ficam sabendo da existência do banco de
dados.
Suporte a dispositivos embarcados: O seu tamanho e necessidade de
recursos reduzidos o torna adequado para sistemas embarcados que
executam com sistemas operacionais limitados (KREIBICH, 2010, p. 5).
39
Características únicas: Oferece recursos não encontrados em muitos
outros gerenciadores de banco de dados, são eles:
o Permite armazenar qualquer valor em quase qualquer coluna,
independente do tipo.
o Capacidade de manipular vários arquivos de banco de dados
simultaneamente, possibilitando unir tabelas de diferentes bancos
de dados em uma única consulta SQL.
o Possibilidade de criar arquivos de banco de dados totalmente em
memória.
Domínio público: O código fonte do SQLite é de domínio público, isso
significa que ele pode ser utilizado, modificado, redistribuído ou
vendido em qualquer forma.
Altamente confiável: Para manter a confiabilidade o SQLite é
agressivamente testado antes do lançamento de cada release. O
conjunto de testes é projetado de modo que o sistema chegue ao seu
limite, oferecendo uma extensa cobertura de código e parâmetros.
4.1.7 Java
Mendes (2009, p. 17) descreve Java como uma tecnologia composta por
uma linguagem de programação e uma plataforma. Foi desenvolvida pela Sun
Microsystems e lançada pela primeira vez em 1995.
A plataforma Java é composta pela Java Virtual Machine (JVM) e Java
Application Programming Interface (API), descritas a seguir (MENDES, 2009, p. 23):
JVM: Representa a base da plataforma Java e está disponível para a
maioria dos sistemas operacionais do mercado, é responsável por
carregar e executar os aplicativos desenvolvidos em Java, convertendo
os bytecodes gerados pelo compilador em código executável para o
ambiente em que se encontra.
API: Coleção de classes prontas e documentadas que fornecem uma
grande quantidade de recursos aos desenvolvedores.
De acordo com Mendes (2009, p. 17-22) algumas das principais
características da linguagem de programação Java são:
40
Simples: Permite o desenvolvimento de aplicativos para sistemas
operacionais e hardwares distintos sem que os desenvolvedores se
preocupem com detalhes específicos de cada arquitetura.
Orientada a objetos: Sendo criada seguindo o paradigma da orientação
a objetos possibilita de forma nativa aos desenvolvedores utilizarem os
conceitos de herança, encapsulamento e polimorfismo.
Multiprocessamento: Permite a implementação de multiprocessamento
com sofisticados mecanismos de sincronização de processos.
Interpretada: Após a compilação dos aplicativos escritos em Java é
gerado um arquivo intermediário, o bytecode, que será executado pela
máquina virtual Java (JVM).
Independência de arquitetura: Através da utilização dos aplicativos
compilados em bytecode em conjunto com a JVM, os aplicativos
desenvolvidos em Java podem ser executados em plataformas
heterogêneas.
Portabilidade: A portabilidade dos aplicativos desenvolvidos em Java é
garantida pela JVM. O código fonte em Java é escrito em arquivos com
extensão ‘.java’. Após a compilação é gerado o arquivo bytecode com a
extensão ‘.class’, o qual será executado pela JVM. Como a JVM está
disponível em diversas plataformas o mesmo arquivo bytecode poderá
ser executado em diversos sistemas operacionais como Windows,
Linux e Mac OS.
Alto desempenho: Apesar da linguagem Java sempre ter o seu
desempenho questionado e comparado com outras linguagens que
geram código nativo, ela apresenta um bom desempenho através da
geração de um código intermediário que seja de fácil interpretação pela
JVM. Outro recurso que auxilia no seu desempenho é o garbage
collector, que libera a memória que não está mais sendo utilizada para
ser realocada para outro processo do sistema.
Robusta: Projetada para gerar sistemas confiáveis, ela fornece
recursos como: verificação de código em tempo de compilação,
checagem de variáveis definidas e não inicializadas, inicialização de
variáveis e atributos automaticamente com valores default,
41
manipulação de exceções e gerenciamento de memória através do
garbage collector, o qual realiza a atividade de liberar automaticamente
da memória os objetos que não estão mais sendo utilizados.
4.2 Metodologia
Nesta seção serão apresentadas as etapas realizadas para o
desenvolvimento do protótipo.
4.2.1 Levantamento de requisitos
Segundo Bezerra (2006, p. 20) o processo de levantamento de requisitos é a
etapa onde ocorre a compreensão do problema aplicada ao desenvolvimento de
software, nesta etapa os desenvolvedores em conjunto com os clientes definem as
necessidades dos futuros usuários do sistema que será desenvolvido.
A seguir serão descritos os requisitos funcionais, não funcionais e as
restrições levantadas para a solução proposta.
4.2.1.1 Requisitos funcionais
O aplicativo deve permitir ao usuário consultar, cadastrar, editar e
excluir ações;
O aplicativo deve permitir ao usuário consultar, detalhar e excluir
cotações;
O aplicativo deve permitir ao usuário atualizar as cotações através da
escolha entre as opções: BM&FBOVESPA cotação histórica,
BM&FBOVESPA pregão atual e Yahoo Finanças pregão atual;
O aplicativo deve permitir ao usuário consultar e atualizar o indexador
DI;
O aplicativo deve permitir ao usuário consultar, editar, movimentar e
excluir os saldos dos ativos da carteira de ações.
42
4.2.1.2 Requisitos não funcionais
O aplicativo deve funcionar em dispositivos com o sistema operacional
Android;
O aplicativo deve armazenar as informações no banco de dados
SQLite;
A interface do aplicativo deve permitir ao usuário manipular seus
componentes através de toques (touch screen);
A interface do aplicativo deve ser simples e intuitiva.
4.2.1.3 Restrições
O dispositivo deve possuir acesso à internet para atualização de
cotações e indexador.
4.2.2 Modelagem
Para a análise e modelagem do aplicativo foi utilizada a linguagem UML. A
UML é uma linguagem visual para modelagem de sistemas orientados a objetos,
através da utilização dos elementos gráficos definidos nesta linguagem é possível
construir diagramas para representar diversas perspectivas de um sistema
(BEZERRA, 2006, p. 14).
4.2.2.1 Diagrama de Casos de Uso
O diagrama de casos de uso demonstra graficamente as funcionalidades do
sistema e como ocorrem as interações entre o sistema e os agentes externos
(atores) que o utilizam. As funcionalidades representadas pelos casos de uso devem
contemplar os requisitos funcionais definidos na etapa de levantamento de requisitos
(BEZERRA, 2006, p. 57).
A figura 6 apresenta o diagrama de casos de uso do aplicativo que foi
desenvolvido com a utilização da ferramenta Enterprise Architect1.
1 Enterprise Architect. Empresa: Sparx Systems (http://www.sparxsystems.com)
43
Figura 6 – Diagrama de Casos de Uso.
Fonte: Autoria própria.
4.2.2.2 Especificação de Casos de Uso
Na especificação de casos de uso serão descritos detalhadamente os
passos e interações realizados entre os casos de uso e os atores do sistema, a
especificação de casos de uso do aplicativo encontra-se no APÊNDICE A –
Especificação de Casos de Uso.
44
4.2.2.3 Diagrama de Classes
O diagrama de classes representa como o sistema está estruturado
internamente para atender as funcionalidades definidas pelos casos de uso
(BEZERRA, 2006, p. 95), o diagrama de classes do aplicativo é apresentado pela
figura 7 e foi desenvolvido com a utilização da ferramenta Enterprise Architect2.
Figura 7 – Diagrama de Classes.
Fonte: Autoria própria.
4.2.2.4 Diagrama de Sequência
O diagrama de sequência é um diagrama de interação que representa como
os objetos do sistema interagem entre si para que um ator atinja seu objetivo na
execução de um caso de uso (BEZERRA, 2006, p. 147), os diagramas de sequência
do aplicativo encontram-se no APÊNDICE B – Diagramas de Sequência e para seu
desenvolvimento foi utilizada a ferramenta Enterprise Architect3.
2 Enterprise Architect. Empresa: Sparx Systems (http://www.sparxsystems.com)
3 Enterprise Architect. Empresa: Sparx Systems (http://www.sparxsystems.com)
45
4.2.2.5 Diagrama Entidade Relacionamento
O diagrama entidade relacionamento do aplicativo é representado pela figura
8 e foi desenvolvido com a utilização da ferramenta ER/Studio4, este diagrama
representa graficamente o modelo de dados de um sistema (PRESSMAN, 2006, p.
151).
Figura 8 – Diagrama Entidade Relacionamento.
Fonte: Autoria própria.
4.2.3 Desenvolvimento
Para a construção do protótipo foi utilizado o ambiente de desenvolvimento
recomendado por Lee (2011, p. 6-7), este ambiente é composto por: Java SE
Development Kit (JDK), IDE Eclipse, Android SDK e ADT Plugin para Eclipse, os
quais serão descritos a seguir:
Java SE Development Kit: É um kit de desenvolvimento Java mantido e
disponibilizado pela Oracle;
4 ER/Studio. Empresa: Embarcadero (http://www.embarcadero.com)
46
IDE Eclipse: É um ambiente integrado de desenvolvimento de código
aberto e multiplataforma, permite o desenvolvimento de aplicações
utilizando entre outras, a linguagem de programação Java, atualmente
é mantido e disponibilizado pela Eclipse Foundation;
Android SDK: É o kit de desenvolvimento para a plataforma Android, é
composto por: emulador, depurador, documentação, bibliotecas,
tutoriais e exemplos;
ADT Plugin para Eclipse: É uma extensão para o IDE Eclipse que
auxilia a criação e depuração de aplicações para a plataforma Android.
A estrutura do funcionamento e os recursos externos utilizados pelo
aplicativo podem ser visualizados através da figura 9.
Figura 9 – Estrutura do funcionamento do protótipo.
Fonte: Autoria própria.
47
As informações do protótipo desenvolvido foram divididas em quatro grupos
separados por abas, conforme apresentado pela figura 10, cada grupo de
informações será explicado a seguir.
Figura 10 – Abas do aplicativo.
Fonte: Autoria própria.
Ações
Ao selecionar a aba “Ações” o aplicativo exibirá a tela consulta ações,
demonstrada pela figura 11, a qual mostrará uma listagem contendo as ações
cadastradas no aplicativo, as informações desta lista são identificadas por sigla e
nome em ordem crescente por sigla.
Figura 11 – Tela consulta ações.
Fonte: Autoria própria.
48
Nesta tela também poderão ser executadas as seguintes opções:
Cadastrar: Para incluir uma nova ação deverá ser pressionado o botão
“Adicionar Ação”, o aplicativo apresentará a tela de cadastro de ações
conforme a figura 12;
Editar: A edição de uma ação ocorrerá de duas maneiras: com um
clique simples sobre o registro ou clicando sobre o registro e mantendo
pressionado até que o aplicativo apresente o menu de contexto, onde
deverá ser selecionado a opção “Editar”, em ambos os casos a tela de
cadastro de ações será exibida com as informações para alteração,
conforme demonstra a figura 12;
Excluir: Para excluir uma ação o usuário deverá clicar sobre o registro
e manter pressionado até que o aplicativo apresente o menu de
contexto, onde deverá selecionar a opção “Excluir”, o aplicativo
apresentará uma caixa de diálogo para confirmação da exclusão.
Figura 12 – Tela cadastro de ações.
Fonte: Autoria própria.
A tela de cadastro de ações demonstrada pela figura 12 é utilizada na edição
ou no cadastro de uma nova ação, em ambos os casos o usuário deverá preencher
as informações e pressionar o botão “Confirmar” para a efetivação da operação.
49
Cotações
Ao selecionar a aba “Cotações” o aplicativo exibirá a tela de consulta de
cotações conforme a figura 13, esta tela apresentará uma listagem contendo as
cotações das ações, as informações desta lista são demonstradas em ordem
crescente por sigla e apresentadas com as informações sigla, data/hora de
atualização e valor da última cotação.
Figura 13 – Tela consulta cotações.
Fonte: Autoria própria.
Nesta tela, também poderão ser executadas as seguintes ações:
Atualizar: Para atualizar as cotações deverá ser pressionado o botão
“Atualizar Cotações”, o aplicativo apresentará a tela de atualização de
cotações demonstrada pela figura 15;
Detalhar: O detalhamento de um registro ocorrerá de duas maneiras:
com um clique simples sobre o registro ou clicando sobre o registro e
mantendo pressionado até que o aplicativo apresente o menu de
contexto, onde deverá selecionar a opção “Detalhar”, em ambos os
casos a tela com os detalhes das cotações será exibida, conforme a
figura 14;
Excluir: Para excluir um registro o usuário deverá clicar e manter
pressionado até que o aplicativo apresente o menu de contexto, onde
50
deverá selecionar a opção “Excluir”, o aplicativo apresentará uma caixa
de diálogo para confirmação da exclusão.
Figura 14 – Tela detalhamento de cotações.
Fonte: Autoria própria.
A tela de detalhamento de cotações, representada pela figura 14, apresenta
todas as informações referente à cotação selecionada.
Figura 15 – Tela atualização de cotações.
Fonte: Autoria própria.
51
Na figura 15 é apresentada a tela de atualização de cotações, nesta tela o
usuário deverá escolher entre as opções “BM&FBOVESPA – Cotação Pregão Atual”,
“BM&FBOVESPA – Cotação Histórica” e “Yahoo Finanças – Cotação Pregão Atual”
e pressionar o botão “Atualizar”, as particularidades de cada opção de atualização
serão descritas a seguir.
a) BM&FBOVESPA – Cotação Pregão Atual
O aplicativo realizará uma requisição ao endereço
“http://www.bmfbovespa.com.br/Pregao-Online/ExecutaAcaoAjax.asp”, passando
como parâmetro as siglas dos ativos separadas pelo caractere “|”.
Para exemplificar, uma consulta para os ativos “PETR4” e “VALE5” é
realizada através do endereço “http://www.bmfbovespa.com.br/Pregao-Online/
ExecutaAcaoAjax.asp?CodigoPapel=PETR4|VALE5” e o resultado é um arquivo
XML com a estrutura apresentada na figura 16.
Figura 16 – Arquivo XML resultado da cotação pela BM&FBOVESPA.
Fonte: Autoria própria.
b) BM&FBOVESPA – Cotação Histórica
Nesta opção o aplicativo utilizará as cotações históricas disponibilizadas pela
BM&FBOVESPA. Esta série histórica de cotações fornece todo o histórico de preços
das cotações negociadas na Bolsa desde 1986. Estes preços são informados na
52
moeda e forma de cotação da época sem qualquer forma de ajuste às condições do
mercado atual (BM&FBOVESPA, 2012d).
O arquivo das cotações históricas é disponibilizado em arquivo texto (TXT)
compactado (ZIP), pode ser solicitado com as periodicidades anuais, mensais ou
diárias, até o limite do último pregão finalizado (BM&FBOVESPA, 2012d).
O aplicativo utiliza o arquivo com as informações diárias, portanto ao
selecionar esta opção o usuário deverá digitar a data das cotações que deseja
atualizar. O arquivo está disponível através do endereço
“http://www.bmfbovespa.com.br/InstDados/SerHist/” + nome do arquivo, o qual é
composto pela sequência de caracteres “COTAHIST_D” + data (formato
DDMMAAAA) + extensão “ZIP”, o arquivo para o dia 31/07/2012 possui o endereço
“http://www.bmfbovespa.com.br/InstDados/SerHist/COTAHIST_D31072012.ZIP”.
O arquivo compactado resultante do download contém um arquivo texto que
apresenta o mesmo nome, porém com a extensão “TXT”. O exemplo citado geraria
um arquivo texto com o nome “COTAHIST_D31072012.txt”, para realizar a
interpretação deste arquivo é necessário utilizar o layout disponibilizado pela
BM&FBOVESPA, encontrado no ANEXO A – Bovespa: Layout do Arquivo –
Cotações Históricas.
As informações deste arquivo são dispostas de modo que cada linha
representa um ativo específico, a sequência de caracteres
“012012073102PETR4 010PETROBRAS PN R$
0000000002031000000000203100000000019430000000001974000000000195000
0000000194900000000019503948400000000003832570000000007566078300000
0000000000009999123100000010000000000000BRPETRACNPR6182” apresenta
um exemplo de informações referente ao ativo PETR4 para a data 31/07/2012.
c) Yahoo Finanças – Cotação Pregão Atual
Com esta opção o aplicativo atualizará as cotações através do Yahoo
Finanças que é um portal sobre finanças, disponível no endereço
“http://br.financas.yahoo.com”, que disponibiliza entre outras informações as
cotações dos ativos negociados nas principais bolsas de valores do mundo,
incluindo a BM&FBOVESPA (YAHOO FINANÇAS, 2012a).
53
Além da consulta das cotações diretamente nas páginas do seu portal, o
Yahoo Finanças disponibiliza um arquivo com a extensão “CSV” com as informações
das cotações, o download deste arquivo é realizado através de requisição ao
endereço “http://br.finance.yahoo.com/d/quotes.csv”, passando como parâmetro as
siglas dos ativos separadas pelo caractere “+” e as opções das informações
desejadas. Antes de incluir as siglas dos ativos como parâmetro devem ser
adicionados os caracteres “.SA” para identificar que se refere a um ativo negociado
na BM&FBOVESPA (YAHOO FINANÇAS, 2012b).
No desenvolvimento deste método de atualização não foram encontradas
informações oficiais sobre os parâmetros necessários para a realização das
consultas, necessitando a utilização de outras fontes.
Os parâmetros necessários para consultar as informações utilizadas pelo
aplicativo podem ser visualizados na tabela 3.
Tabela 3 – Parâmetros para consultar cotações pelo Yahoo Finanças
Identificador Informação
s Sigla do ativo
n Nome do ativo
d1 Data
t1 Hora
o Preço de abertura
g Preço mínimo
h Preço máximo
l1 Último preço
p2 Oscilação
Fonte: Adaptado de Eddelbuettel (2012) e Jarloo (2012)
Para consultar a cotação dos ativos “PETR4” e “VALE5” pelo Yahoo
Finanças, obtemos o endereço “http://finance.yahoo.com/d/quotes.csv?s=
PETR4.SA+VALE5.SA&f=snd1t1oghl1p2” e o resultado gerado é um arquivo CSV
com as informações separadas pelo caractere “,” conforme demonstra a figura 17.
54
Figura 17 – Arquivo CSV resultado da cotação pelo Yahoo Finanças.
Fonte: Autoria própria.
As informações deste arquivo são dispostas na sequência em que os
parâmetros do endereço foram criados, portanto para o exemplo citado são: sigla do
ativo, nome do ativo, data, hora, preço de abertura, mínimo, máximo, último e
oscilação. Como não foi encontrado parâmetro correspondente para a cotação
média, este valor não será atualizado.
Carteira
Ao selecionar a aba “Carteira” o aplicativo apresentará a tela demonstrada
pela figura 18. Nesta tela são apresentadas as posições dos ativos e o total da
carteira de ações, contendo as informações: sigla e nome da ação, data/hora da
atualização da cotação, valor atualizado pela cotação, percentual e valor da
rentabilidade, bem como um indicativo gráfico da valorização ou desvalorização do
ativo.
Figura 18 – Tela consulta carteira de ações.
Fonte: Autoria própria.
55
Além da visualização das informações citadas, poderão ser executadas as
seguintes ações:
Movimentar: Para atualizar a posição de um ativo deverá ser
pressionado o botão “Movimentar Carteira”, o aplicativo apresentará a
tela de movimentação da carteira conforme a figura 19;
Editar: A edição da posição de um ativo ocorrerá de duas maneiras:
com um clique simples sobre o registro ou clicando sobre o registro e
mantendo pressionado até que o aplicativo apresente o menu de
contexto, onde deverá ser selecionado a opção “Editar”, em ambos os
casos a tela de edição da carteira será exibida com as informações
para alteração, conforme demonstra a figura 20;
Excluir: Para excluir um registro o usuário deverá clicar e manter
pressionado até que o aplicativo apresente o menu de contexto, onde
deverá selecionar a opção “Excluir”, o aplicativo apresentará uma caixa
de diálogo para confirmação da exclusão.
Figura 19 – Tela movimentação da carteira.
Fonte: Autoria própria.
Através da tela de movimentação da carteira, representada pela figura 19, o
usuário realiza a movimentação da carteira, para isso deve preencher as
informações solicitadas e pressionar o botão “Confirmar” para efetivar a operação.
56
Figura 20 – Tela edição da carteira.
Fonte: Autoria própria.
A tela de edição da posição dos ativos, apresentada pela figura 20,
possibilita ao usuário realizar eventuais ajustes necessários na quantidade e preço
do ativo selecionado, neste caso o usuário deve alterar as informações desejadas e
pressionar o botão “Confirmar” para efetivação da operação.
Indexador
Ao selecionar a aba “Indexador” o aplicativo apresentará a tela consulta
indexador, representada pela figura 21, a qual exibirá as informações código
BACEN, nome e taxa do indexador.
57
Figura 21 – Tela consulta indexador.
Fonte: Autoria própria.
A atualização do indexador ocorrerá quando o usuário pressionar o botão
“Atualizar Indexador”, neste momento o aplicativo realizará uma requisição ao Web
Service do BACEN para buscar as informações referente ao indexador.
O Web Service disponibilizado pelo BACEN faz parte do Sistema
Gerenciador de Séries Temporais (SGS), este sistema tem como objetivo consolidar
e tornar disponíveis informações econômico-financeiras (BACEN, 2012).
Através da pesquisa textual disponibilizada no SGS encontrou-se o código
4391 para o indexador DI (taxa mês), a escolha deste indexador para benchmark da
carteira de ações foi baseado no fato de que é possível conseguir investimentos que
apresentem rentabilidade próxima a 100% do indexador DI sem os riscos presentes
no mercado de ações, portanto, se a rentabilidade apresentada pela carteira de
ações estiver abaixo ou próxima à taxa DI por um longo período poderá ser mais
conveniente realocar os investimentos para aplicações de baixo risco, ou então rever
as estratégias adotadas no mercado de ações (INVESTPEDIA, 2011).
O SGS pode ser acessado através do endereço
“https://www3.bcb.gov.br/sgspub”, no menu “Ajuda” deste sistema foi possível
localizar informações sobre o WSDL do Web Service, o qual está disponível em:
“https://www3.bcb.gov.br/wssgs/services/FachadaWSSGS?wsdl”.
58
A plataforma Android não oferece uma solução nativa para consumir Web
Services, sendo necessária a utilização de biblioteca externa. Para este projeto foi
utilizada a biblioteca ksoap2-android disponível no endereço “http://code.google.
com/p/ksoap2-android”.
O ksoap2-android é uma biblioteca leve e eficiente para consumir Web
Services SOAP (KSOAP2-ANDROID, 2012). A figura 22 demonstra o trecho de
código fonte utilizando esta biblioteca para consumir o Web Service do BACEN.
Figura 22 – Trecho de código fonte utilizado para consumir o Web Service do BACEN.
Fonte: Autoria própria.
Este Web Service disponibiliza vários métodos de consulta, para este projeto
optou-se pela invocação do método “getUltimoValorXML”, conforme demonstrado
pela figura 22. Este método recebe como parâmetro um long com o código do
indexador, e como resultado retorna uma string com a estrutura de um arquivo XML,
conforme apresenta a figura 23.
59
Figura 23 – Arquivo XML resultado da consulta ao Web Service do BACEN.
Fonte: Autoria própria.
60
5. Resultados Obtidos
A construção de aplicativos para a plataforma Android apresenta como
linguagem de programação padrão o Java, o que tornou o processo de aprendizado
para o seu desenvolvimento rápido, devido ao conhecimento prévio nesta
linguagem.
A plataforma Android apresenta uma grande quantidade de bibliotecas
nativas, possibilitando implementar sem a necessidade de bibliotecas externas
recursos como: banco de dados local, requisição a endereços eletrônicos, download
de arquivos, compactação e descompactação de arquivos, leitura de arquivos em
vários formatos e formatação de datas e números, recursos estes necessários para
o desenvolvimento do protótipo.
Em se tratando do acesso a serviços disponibilizados por Web Services a
plataforma Android não o disponibiliza de forma nativa, sendo necessária a
utilização de uma biblioteca externa, para este projeto optou-se pelo uso da
biblioteca KSOAP2.
Embora apresente uma estrutura simples e alguns exemplos em seu site
oficial, a biblioteca KSOAP2 possui uma documentação escassa, sendo necessária
a busca de outras fontes para entender melhor a sua utilização. Além disso, foram
encontrados problemas com a versão atual (2.6.5) da biblioteca, com esta versão
não foi possível receber as respostas do Web Service do BACEN, este problema só
foi resolvido com a utilização da versão 2.6.4.
Outra dificuldade encontrada foi a falta de documentação oficial para a
utilização do recurso de consulta cotações em arquivo disponibilizado pelo Yahoo
Finanças, o que tornou necessário a busca de outras referências.
Para a validação do funcionamento do protótipo foram realizados testes
comparativos com a ferramenta “Carteira de Investimentos Bovespa”, esta
ferramenta é um módulo do sistema “SIMEC – Sistema de Mercado de Capitais”,
utilizado por diversas corretoras de valores do Brasil (UNISISTEMAS, 2012). Estes
testes foram realizados através de simulações de entradas/compras e
saídas/vendas nos dois ambientes e ao final comparou-se a posição dos ativos e o
total da carteira, os resultados foram bem satisfatórios, sendo encontradas apenas
diferenças de valores na casa dos centavos, o que é aceitável se tratando de valores
expressivos.
61
6. Considerações Finais
Este trabalho destacou o grande momento vivenciado pelo mercado de
dispositivos móveis, em especial smartphones e tablets, e a importância da
plataforma Android neste processo.
Com a construção do protótipo proposto foi possível compreender o
processo de desenvolvimento de aplicativos para a plataforma Android, a qual
disponibiliza uma grande quantidade de bibliotecas nativas que auxiliam os
desenvolvedores nesta tarefa.
Apesar da necessidade de biblioteca adicional para realizar a integração
com Web Services, a plataforma Android possibilitou que vários métodos de
integração com outras tecnologias fossem implementados, demonstrando que
integrar um aplicativo Android com aplicações desenvolvidas em outras linguagens é
totalmente viável e válido, principalmente no momento atual em que acompanhamos
a expansão da chamada “computação em nuvem”.
Mesmo diante das dificuldades encontradas no decorrer deste trabalho, ao
final do desenvolvimento do protótipo proposto foi possível atender a todos os
requisitos estabelecidos, e os testes realizados foram totalmente satisfatórios.
6.1 Trabalhos Futuros
Visando a melhoria do protótipo desenvolvido podemos citar algumas
funcionalidades adicionais:
Autenticação de usuário;
Acompanhamento da posição de ativos dos mercados de opções, a
termo e futuro;
Manter histórico de movimentações, saldos e cotações;
Inclusão e manutenção dos indexadores para benchmark;
Atualização das cotações através de outras fontes;
Atualização automática das cotações com um tempo configurado;
Inclusão de gráficos.
Além disso, seria extremamente interessante realizar a integração do
aplicativo com os sistemas das corretoras, de modo que o usuário não precise
62
digitar as informações, o que pode inviabilizar a utilização do aplicativo para
investidores com uma participação mais ativa no mercado.
63
REFERÊNCIAS
BACEN. SGS - Sistema Gerenciador de Séries Temporais. 2012. Disponível em: <https://www3.bcb.gov.br/sgspub> Acesso em: 28 jul. 2012. BADA. Bada Ecosystem. 2012a. Disponível em: <http://www.bada.com/whatisbada/ecosystem.html> Acesso em: 15 mai. 2012. BADA. Platform Features. 2012b. Disponível em: <http://www.bada.com/whatisbada/platformfeatures_01.html> Acesso em: 15 mai. 2012. BADA. What is Bada. 2012c. Disponível em: <http://www.bada.com/whatisbada/index.html> Acesso em: 15 mai. 2012. BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro: Campus, 2006. 290 p. BLACKBERRY MAGAZINE. “BlackBerry é plataforma mais segura para empresas”, dizem consultores. 2012. Disponível em: <http://www.blackberrymagazine.com.br/2012/04/bbnews-blackberry-plataforma-mais-segura-para-empresas-dizem-consultores> Acesso em: 15 mai. 2012. BLACKBERRY SPY SOFTWARE. Blackberry History – Then and Now. 2012. Disponível em: <http://www.blackberryspysoftware101.com/blackberry-history> Acesso em: 15 mai. 2012. BLOOMBERG. Company Overview of Android Inc. 2012. Disponível em: <http://investing.businessweek.com/research/stocks/private/snapshot.asp?privcapId=23584687> Acesso em: 17 mai. 2012. BM&FBOVESPA. Aplicativos Móveis. 2012a. Disponível em: <http://www.bmfbovespa.com.br/pt-br/intros/intro-mobile.aspx?Idioma=pt-br> Acesso em: 01 jul. 2012. BM&FBOVESPA. Busca de Corretoras. 2012b. Disponível em: <http://www.bmfbovespa.com.br/shared/iframe.aspx?altura=1000&idioma=pt-br&url=http://vitrinecorretoras.bvmf.com.br> Acesso em: 30 jun. 2012. BM&FBOVESPA. Serviços de Informação. 2012c. Disponível em: <http://www.bmfbovespa.com.br/pt-br/intros/intro-servicos-de-informacao.aspx?idioma=pt-br> Acesso em: 24 jun. 2012. BM&FBOVESPA. Cotações Históricas. 2012d. Disponível em: <http://www.bmfbovespa.com.br/shared/iframe.aspx?idioma=pt-br&url=http://www. bmfbovespa.com.br/pt-br/cotacoes-historicas/FormSeriesHistoricas.asp> Acesso em: 19 mai. 2012. BORGES, Luiz E. Python para desenvolvedores. 2. ed. Rio de Janeiro: Edição do Autor, 2010. 360 p.
64
BUDAG, Denis. Symbian agora é 100% open source – conheça um pouco da história. 2010. Disponível em: <http://www.usuarionokia.com.br/symbian-agora-e-100-open-source-conheca-um-pouco-da-historia> Acesso em: 16 mai. 2012. BURGOS, Pedro. Microsoft e Nokia oficializam parceria: Windows Phone 7 será o padrão dos novos smartphones. 2011. Disponível em: <http://www.gizmodo.com.br/conteudo/microsoft-e-nokia-oficializam-parceria> Acesso em: 16 mai. 2012. CHAPPELL, David; JEWELL, Tyler. Java Web Services. Sebastopol, Estados Unidos: O'Reilly & Associates, 2002. 249 p. CISCO. Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2011–2016. 2012. Disponível em: <http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-520862.html> Acesso em: 07 jul. 2012. DALE, Nell; LEWIS, John. Computer Science: illuminated. Sudbury, Estados Unidos: Jones and Bartlett Publishers, 2002. 682 p. DAQUINO, Fernando. Metro UI: a interface que dominará o Windows. 2011. Disponível em: <http://www.tecmundo.com.br/microsoft/10736-metro-ui-a-interface-que-dominara-o-windows.htm> Acesso em: 16 mai. 2012. DYKES, Lucinda; TITTEL, Ed. XML For Dummies. 4. ed. Indianapolis, Estados Unidos: Wiley Publishing, 2005. 386 p. EDDELBUETTEL, Dirk. Finance::YahooQuote. 2012. Disponível em: <http://dirk.eddelbuettel.com/code/yahooquote.html> Acesso em: 23 jun. 2012. FELKER, Donn; DOBBS, Joshua. Android Application Development For Dummies. Indianapolis, Estados Unidos: Wiley Publishing, 2011. 388 p. FEBRABAN. Pesquisa CIAB FEBRABAN aponta crescimento de 50% no uso do Mobile Banking. 2012. Disponível em: <http://www.febraban.org.br/Noticias1.asp?id_texto=1585&id_pagina=59&palavra=> Acesso em: 30 jun. 2012. FORTUNA, Eduardo. Mercado Financeiro: produtos e serviços. 18. ed. rev. e atual. Rio de Janeiro: Qualitymark, 2010. 1024 p. GARTNER. Gartner Says Worldwide Smartphone Sales Soared in Fourth Quarter of 2011 With 47 Percent Growth. 2012. Disponível em: <http://www.gartner.com/it/page.jsp?id=1924314> Acesso em: 14 mai. 2012. GONÇALVES, Matheus. Android x iOS - Finalmente uma comparação imparcial. 2011. Disponível em: <http://www.geek.com.br/posts/13778-android-x-ios-finalmente-uma-comparacao-imparcial> Acesso em: 16 mai. 2012.
65
GOOGLE. Nosso Planeta Mobile: Brasil. 2012a. Disponível em: <http://services.google.com/fh/files/blogs/our_mobile_planet_brazil_pt_BR.pdf> Acesso em: 01 jul. 2012. GOOGLE. What is Android?. 2012b. Disponível em: <http://developer.android.com/guide/basics/what-is-android.html> Acesso em: 17 mai. 2012. GUIA DO HARDWARE. BlackBerry. 2012. Disponível em: <http://www.hardware.com.br/livros/smartphones/blackberry.html> Acesso em: 15 mai. 2012. HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2: Volume I – Fundamentals. Upper Saddle River, Estados Unidos: Prentice Hall PTR, 2000. 783 p. IDC. Estudo da IDC revela que foram vendidos aproximadamente 9 milhões de smartphones no Brasil em 2011. 2012a. Disponível em: < http://www.idcbrasil.com.br/news.asp?ctr=bra&id_release=2213> Acesso em: 07 jul. 2012. IDC. Pesquisa da IDC revela que foram vendidos mais de 370 mil tablets no primeiro trimestre de 2012. 2012b. Disponível em: <http://www.idcbrasil.com.br/news.asp?ctr=bra&id_release=2249> Acesso em: 07 jul. 2012. IDC. Worldwide Smartphone Market Expected to Grow 55% in 2011 and Approach Shipments of One Billion in 2015, According to IDC. 2011. Disponível em: <http://www.idc.com/getdoc.jsp?containerId=prUS22871611> Acesso em: 16 mai. 2012. INVESTPEDIA. O que é CDI (Certificado de Depósito Interfinanceiro)?. 2011. Disponível em: <http://www.investpedia.com.br/artigo/O+que+e+CDI+Certificado+ de+Deposito+Interfinanceiro.aspx> Acesso em: 01 ago. 2012. JARLOO. Using the Yahoo Finance API for CSV. 2012. Disponível em: <http://www.jarloo.com/yahoo_finance/> Acesso em: 23 jun. 2012. JIPPING, Michael J. Smartphone Operating System Concepts with Symbian OS. Revisão Attila Vamos et al. Chichester, Inglaterra: John Wiley & Sons Ltd, 2007. 356 p. JOHNSON, Thienne M. Java para Dispositivos Móveis: Desenvolvendo Aplicações com J2ME. São Paulo: Novatec, 2007. 336 p. KREIBICH, Jay A. Using SQLite. Sebastopol, Estados Unidos: O’Reilly Media, 2010. 528 p. KSOAP2-ANDROID. A lightweight and efficient SOAP library for the Android platform. 2012. Disponível em: <http://code.google.com/p/ksoap2-android> Acesso em: 28 jul. 2012.
66
LEE, Valentino; SCHNEIDER, Heather; SCHELL, Robbie. Aplicações móveis: Arquitetura, projeto e desenvolvimento. Tradução: Amaury Bentes e Deborah Rüdiger. Revisão técnica: Renato Haddad. São Paulo: Person Education do Brasil, 2005. 330 p. LEE, Wei-Meng. Beginning Android Application Development. Indianapolis, Estados Unidos: Wiley Publishing, 2011. 450 p. LIMA, Iran S.; LIMA, Gerlando A. S. F. de; PIMENTEL, Renê C. Curso de Mercado Financeiro. 2. ed. São Paulo: Atlas, 2012. 440 p. MEIER, Reto. Professional Android Application Development. Indianapolis, Estados Unidos: Wiley Publishing, 2009. 436 p. MENDES, Douglas R. Programação Java com Ênfase em Orientação a Objetos. São Paulo: Novatec, 2009. 456 p. MONQUEIRO, Julio C. B. Nokia retoma liderança e atividade no desenvolvimento do Symbian. 2010. Disponível em: <http://www.hardware.com.br/noticias/2010-11/nokia-retoma-symbian.html> Acesso em: 16 mai. 2012. MORIMOTO, Carlos E. Hardware: Manual Completo. 3. ed. 2002. 786 p. OHA. Industry Leaders Announce Open Platform for Mobile Devices. 2007. Disponível em: <http://www.openhandsetalliance.com/press_110507.html> Acesso em: 17 mai. 2012. PINGDOM. Symbian is still top mobile OS – finished 2011 with resurgence. 2011. Disponível em: <http://royal.pingdom.com/2011/12/29/symbian-is-still-top-mobile-os-finished-2011-with-resurgence> Acesso em: 16 mai. 2012. PINHEIRO, Juliano L. Mercado de Capitais. 6. ed. São Paulo: Atlas, 2012. 560 p. PRESSMAN, Roger S. Engenharia de Software. 6. ed. Rio de Janeiro: McGraw Hill, 2006. 752 p. RAY, Erik T. Learning XML. Sebastopol, Estados Unidos: O'Reilly & Associates, 2001. 277 p. ROCHA, Jenner M. A evolução do Windows CE até Windows Phone 7. 2011. Disponível em: <http://blog.maciejewsky.net/blog/post/2011/04/12/A-evolucao-do-Windows-CE-ate-Windows-Phone-7.aspx> Acesso em: 16 mai. 2012. STRATEGY ANALYTICS. Global Mobile Media Revenues To Touch $150 Billion In 2012. 2012. Disponível em: <http://www.strategyanalytics.com/default.aspx?mod=pressreleaseviewer&a0=5206> Acesso em: 01 jul. 2012.
67
UNISISTEMAS. Bovespa - Controle da Carteira de Investimentos. 2012. Disponível em: <http://www.unisistemas.com.br/modulo.asp?t=1&id=15> Acesso em: 04 ago. 2012. VELOSO, Renê R. Java e XML: Processamento de documentos XML com Java. 2. ed. São Paulo: Novatec, 2007. 109 p. WIKIPÉDIA. iOS. Disponível em: <http://pt.wikipedia.org/wiki/IOS> Acesso em: 16 mai. 2012. WILTGEN, Julia. As corretoras que oferecem o home broker portátil. 2012. Disponível em: <http://exame.abril.com.br/seu-dinheiro/acoes/noticias/as-corretoras-que-oferecem-o-home-broker-portatil> Acesso em: 29 jun. 2012. YAHOO FINANÇAS. Yahoo! Finanças. 2012a. Disponível em: <http://br.financas.yahoo.com> Acesso em: 23 jun. 2012.
YAHOO FINANÇAS. Yahoo! Finance - Exchanges. 2012b. Disponível em: <http://finance.yahoo.com/exchanges> Acesso em: 23 jun. 2012. ZIEGLER, Chris. Windows Phone 7: the complete guide. 2010. Disponível em: <http://www.engadget.com/2010/03/18/windows-phone-7-series-the-complete-guide> Acesso em: 16 mai. 2012.
68
APÊNDICES
APÊNDICE A – Especificação de Casos de uso UC – Consultar ações Descrição Este caso de uso tem como finalidade consultar as ações cadastradas. Atores Usuário. Pré-Condições Não se aplica. Pós-Condições As ações cadastradas são apresentadas para consulta. Fluxo de eventos principal
1. O caso de uso é iniciado quando o ator aciona a opção “Ações” no aplicativo;
2. O aplicativo exibe para consulta uma listagem constando “Sigla” e “Nome” das ações cadastradas; [FA1] [FA2] [FA3]
3. O caso de uso é encerrado. Fluxos de eventos alternativos FA1 – Cadastrar ações
1. O aplicativo executa o caso de uso “UC – Cadastrar ações” e retorna ao passo 2 do fluxo principal.
FA2 – Editar ações
1. O aplicativo executa o caso de uso “UC – Editar ações” e retorna ao passo 2 do fluxo principal.
FA3 – Excluir ações
1. O aplicativo executa o caso de uso “UC – Excluir ações” e retorna ao passo 2 do fluxo principal.
69
UC – Cadastrar ações Descrição Este caso de uso tem como finalidade cadastrar novas ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar ações”. Pós-Condições Uma nova ação é cadastrada. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita cadastrar uma nova ação;
2. O aplicativo apresenta a interface solicitando ao usuário as informações “Sigla” e “Nome”;
3. O ator preenche as informações e aciona a opção “Confirmar”; [FA1] [E1] [E2] [E3]
4. O aplicativo armazena as informações no banco de dados e apresenta a mensagem “Cadastrado com sucesso!”; [E4]
5. O caso de uso é encerrado. Fluxo de eventos alternativo FA1 - Cancelar
1. O ator aciona a opção “Cancelar”; 2. O caso de uso é encerrado.
Exceções E1 – O aplicativo verifica se o campo obrigatório “Sigla” foi preenchido, caso contrário apresenta a mensagem “Campo Sigla obrigatório!” e retorna ao passo 2 do fluxo principal. E2 – O aplicativo verifica se o campo obrigatório “Nome” foi preenchido, caso contrário apresenta a mensagem “Campo Nome obrigatório!” e retorna ao passo 2 do fluxo principal. E3 – O aplicativo verifica no banco de dados se existe outra ação cadastrada com a mesma “Sigla”, caso exista apresenta a mensagem “Ação já cadastrada com esta sigla!” e retorna ao passo 2 do fluxo principal. E4 – Caso ocorra algum erro no armazenamento das informações no banco de dados o aplicativo apresenta a mensagem “Erro no cadastro!” e retorna ao passo 2 do fluxo principal.
70
UC – Editar ações Descrição Este caso de uso tem como finalidade editar as ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar ações”. Pós-Condições A ação será alterada. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita editar uma ação; 2. O aplicativo apresenta a interface com as informações “Sigla” e “Nome”
para alteração; 3. O ator altera as informações e aciona a opção “Confirmar”; [FA1] [E1] [E2]
[E3] 4. O aplicativo armazena as informações no banco de dados e apresenta a
mensagem “Atualização realizada com sucesso!”; [E4] 5. O caso de uso é encerrado.
Fluxo de eventos alternativo FA1 – Cancelar
1. O ator aciona a opção “Cancelar”; 2. O caso de uso é encerrado.
Exceções E1 – O aplicativo verifica se o campo obrigatório “Sigla” foi preenchido, caso contrário apresenta a mensagem “Campo Sigla obrigatório!” e retorna ao passo 2 do fluxo principal. E2 – O aplicativo verifica se o campo obrigatório “Nome” foi preenchido, caso contrário apresenta a mensagem “Campo Nome obrigatório!” e retorna ao passo 2 do fluxo principal. E3 – O aplicativo verifica no banco de dados se existe outra ação cadastrada com a mesma “Sigla”, caso exista apresenta a mensagem “Ação já cadastrada com esta sigla!” e retorna ao passo 2 do fluxo principal. E4 – Caso ocorra algum erro no armazenamento das informações no banco de dados o aplicativo apresenta a mensagem “Erro na atualização!” e retorna ao passo 2 do fluxo principal.
71
UC – Excluir ações Descrição Este caso de uso tem como finalidade excluir as ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar ações”. Pós-Condições A ação será excluída. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita excluir uma ação; 2. O aplicativo apresenta a mensagem “Deseja excluir esta ação?” com as
opções “Sim” e “Não”; 3. O ator seleciona a opção “Sim”; [FA1] [E1] 4. O aplicativo exclui as informações da ação do banco de dados e apresenta
a mensagem “Excluído com sucesso!”; [E2] 5. O caso de uso é encerrado.
Fluxo de eventos alternativo FA1 – Não excluir
1. O ator seleciona a opção “Não”; 2. O caso de uso é encerrado.
Exceções E1 – O aplicativo verifica se a ação a ser excluída possui vínculo com “Carteira de ações”, caso encontre apresenta a mensagem “Ação com saldo, não é possível excluir!” e o caso de uso é encerrado. E2 – Caso ocorra algum erro na exclusão das informações do banco de dados o aplicativo apresenta a mensagem “Erro ao excluir!” e o caso de uso é encerrado.
72
UC – Consultar cotações Descrição Este caso de uso tem como finalidade consultar as cotações. Atores Usuário. Pré-Condições Não se aplica. Pós-Condições As cotações cadastradas são apresentadas para consulta. Fluxo de eventos principal
1. O caso de uso é iniciado quando o ator aciona a opção “Cotações” no aplicativo;
2. O aplicativo exibe para consulta uma listagem constando “Sigla”, “Data/Hora de atualização” e ”Último preço“ das cotações das ações cadastradas; [FA1] [FA2] [FA3]
3. O caso de uso é encerrado. Fluxos de eventos alternativos FA1 – Atualizar cotações
1. O aplicativo executa o caso de uso “UC – Atualizar cotações” e retorna ao passo 2 do fluxo principal.
FA2 – Detalhar cotações
1. O aplicativo executa o caso de uso “UC – Detalhar cotações” e retorna ao passo 2 do fluxo principal.
FA3 – Excluir cotações
1. O aplicativo executa o caso de uso “UC – Excluir cotações” e retorna ao passo 2 do fluxo principal.
73
UC – Atualizar cotações Descrição Este caso de uso tem como finalidade atualizar as cotações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar cotações”. Pós-Condições As cotações serão atualizadas. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita atualizar as cotações; 2. O aplicativo apresenta a interface ao usuário com as opções
“BM&FBOVESPA – Cotação Pregão Atual”, “BM&FBOVESPA – Cotação Histórica” ou “Yahoo Finanças – Cotação Pregão Atual” e o campo “data”;
3. O ator seleciona a opção “BM&FBOVESPA – Cotação Pregão Atual” e aciona a opção “Atualizar” [FA1] [FA2] [FA3]
4. O aplicativo executa o caso de uso “UC – Atualizar cotação BM&FBOVESPA”.
5. O aplicativo armazena as informações no banco de dados e apresenta a mensagem “Atualização realizada com sucesso!”; [E1]
6. O caso de uso é encerrado. Fluxos de eventos alternativos FA1 – BM&FBOVESPA – Cotação Histórica
1. O ator seleciona a opção “BM&FBOVESPA – Cotação Histórica” e aciona a opção “Atualizar”.
2. O aplicativo executa o caso de uso “UC – Atualizar cotação BM&FBOVESPA” e retorna ao passo 5 do fluxo principal.
FA2 – Yahoo Finanças – Cotação Pregão Atual
1. O ator seleciona a opção “Yahoo Finanças – Cotação Pregão Atual” e aciona a opção “Atualizar”.
2. O aplicativo executa o caso de uso “UC – Atualizar cotação Yahoo Finanças” e retorna ao passo 5 do fluxo principal.
FA3 – Cancelar
1. O ator aciona a opção “Cancelar”; 2. O caso de uso é encerrado.
Exceções E1 – Caso ocorra algum erro no armazenamento das informações no banco de dados o aplicativo apresenta a mensagem “Erro na atualização!” e retorna ao passo 2 do fluxo principal.
74
UC – Atualizar cotação BM&FBOVESPA Descrição Este caso de uso tem como finalidade consultar as cotações no servidor da BM&FBOVESPA. Atores BM&FBOVESPA. Pré-Condições Execução do caso de uso “UC – Atualizar cotações”. Pós-Condições Os dados das cotações são consultados no servidor da BM&FBOVESPA. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator seleciona a opção “BM&FBOVESPA – Cotação Pregão Atual” ou “BM&FBOVESPA – Cotação Histórica” no passo 3 do caso de uso “UC – Atualizar cotações”;
2. O aplicativo solicita as informações das cotações ao servidor da BM&FBOVESPA;
3. O caso de uso é encerrado.
75
UC – Atualizar cotação Yahoo Finanças Descrição Este caso de uso tem como finalidade consultar as cotações no servidor do Yahoo Finanças. Atores Yahoo Finanças. Pré-Condições Execução do caso de uso “UC – Atualizar cotações”. Pós-Condições Os dados das cotações são consultados no servidor do Yahoo Finanças. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator seleciona a opção “Yahoo Finanças – Cotação Pregão Atual” no passo 3 do caso de uso “UC – Atualizar cotações”;
2. O aplicativo solicita as informações das cotações ao servidor do Yahoo Finanças;
3. O caso de uso é encerrado.
76
UC – Detalhar cotações Descrição Este caso de uso tem como finalidade detalhar as cotações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar cotações”. Pós-Condições A cotação será apresentada detalhadamente. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita detalhar uma cotação; 2. O aplicativo apresenta a interface com as informações “Sigla”, “Último
Preço”, “Abertura”, “Mínima”, “Máxima”, “Média”, “Data/Hora da atualização” [FA1]
3. O ator aciona a opção “Voltar”; 4. O caso de uso é encerrado.
77
UC – Excluir cotações Descrição Este caso de uso tem como finalidade excluir as cotações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar cotações”. Pós-Condições A cotação será excluída. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita excluir uma cotação; 2. O aplicativo apresenta a mensagem “Deseja excluir esta cotação?” com as
opções “Sim” e “Não”; 3. O ator seleciona a opção “Sim”; [FA1] 4. O aplicativo exclui as informações da cotação do banco de dados e
apresenta a mensagem “Excluído com sucesso!”; [E1] 5. O caso de uso é encerrado.
Fluxo de eventos alternativo FA1 – Não excluir
1. O ator seleciona a opção “Não”; 2. O caso de uso é encerrado.
Exceções E1 – Caso ocorra algum erro na exclusão das informações do banco de dados o aplicativo apresenta a mensagem “Erro ao excluir!” e o caso de uso é encerrado.
78
UC – Consultar carteira de ações Descrição Este caso de uso tem como finalidade consultar a posição dos ativos da carteira de ações. Atores Usuário. Pré-Condições Não se aplica. Pós-Condições A posição dos ativos da carteira de ações é apresentada para consulta. Fluxo de eventos principal
1. O caso de uso é iniciado quando o ator aciona a opção “Carteira” no aplicativo;
2. O aplicativo exibe para consulta uma listagem constando a “Sigla”, “Nome”, “Data/Hora de atualização da cotação”, ”Valor atualizado pela cotação“ e “% Rentabilidade” dos ativos da carteira de ações; [FA1] [FA2] [FA3]
3. O caso de uso é encerrado. Fluxos de eventos alternativos FA1 – Editar carteira de ações
1. O aplicativo executa o caso de uso “UC – Editar carteira de ações” e retorna ao passo 2 do fluxo principal.
FA2 – Movimentar carteira de ações
1. O aplicativo executa o caso de uso “UC – Movimentar carteira de ações” e retorna ao passo 2 do fluxo principal.
FA3 – Excluir carteira de ações
1. O aplicativo executa o caso de uso “UC – Excluir carteira de ações” e retorna ao passo 2 do fluxo principal.
79
UC – Editar carteira de ações Descrição Este caso de uso tem como finalidade editar o saldo da posição de um ativo da carteira de ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar carteira de ações”. Pós-Condições A posição do ativo será alterada. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita editar o saldo de um ativo da carteira de ações;
2. O aplicativo apresenta a interface com as informações “Quantidade” e “Preço” para alteração;
3. O ator altera as informações e aciona a opção “Confirmar”; [FA1] [E1] [E2] [E3] [E4]
4. O aplicativo armazena as informações no banco de dados e apresenta a mensagem “Atualização realizada com sucesso!”; [E5]
5. O caso de uso é encerrado.
Fluxo de eventos alternativo FA1 – Cancelar
1. O ator aciona a opção “Cancelar”; 2. O caso de uso é encerrado.
Exceções E1 – O aplicativo verifica se o campo obrigatório “Quantidade” foi preenchido, caso contrário apresenta a mensagem “Campo Quantidade obrigatório!” e retorna ao passo 2 do fluxo principal. E2 – O aplicativo verifica se o campo obrigatório “Preço” foi preenchido, caso contrário apresenta a mensagem “Campo Preço obrigatório!” e retorna ao passo 2 do fluxo principal. E3 – O aplicativo verifica se foi digitada uma quantidade positiva, caso contrário apresenta a mensagem “Quantidade deve ser maior que zero!” e retorna ao passo 2 do fluxo principal. E4 – O aplicativo verifica se foi digitado um preço maior ou igual a zero, caso contrário apresenta a mensagem “Preço deve ser maior ou igual a zero!” e retorna ao passo 2 do fluxo principal.
80
E5 – Caso ocorra algum erro no armazenamento das informações no banco de dados o aplicativo apresenta a mensagem “Erro na atualização!” e retorna ao passo 2 do fluxo principal.
81
UC – Movimentar carteira de ações Descrição Este caso de uso tem como finalidade movimentar a carteira de ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar carteira de ações”. Pós-Condições A posição dos ativos da carteira de ações é atualizada. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita movimentar a carteira de ações;
2. O aplicativo apresenta a interface ao usuário com as opções de seleção “Entrada/Compra” ou “Saída/Venda”, a lista de ações e os campos “Quantidade” e “Preço”;
3. O ator preenche as informações e aciona a opção “Confirmar”; [FA1] [E1] [E2] [E3] [E4] [E5]
4. O aplicativo armazena as informações no banco de dados e apresenta a mensagem “Atualização realizada com sucesso!”; [E6]
5. O caso de uso é encerrado. Fluxo de eventos alternativo FA1 - Cancelar
1. O ator aciona a opção “Cancelar”; 2. O caso de uso é encerrado.
Exceções E1 – O aplicativo verifica se o campo obrigatório “Quantidade” foi preenchido, caso contrário apresenta a mensagem “Campo Quantidade obrigatório!” e retorna ao passo 2 do fluxo principal. E2 – O aplicativo verifica se o campo obrigatório “Preço” foi preenchido, caso contrário apresenta a mensagem “Campo Preço obrigatório!” e retorna ao passo 2 do fluxo principal. E3 – O aplicativo verifica se foi digitada uma quantidade positiva, caso contrário apresenta a mensagem “Quantidade deve ser maior que zero!” e retorna ao passo 2 do fluxo principal. E4 – O aplicativo verifica se foi digitado um preço maior ou igual a zero, caso contrário apresenta a mensagem “Preço deve ser maior ou igual a zero!” e retorna ao passo 2 do fluxo principal.
82
E5 – O aplicativo verifica se haverá saldo suficiente para a realização da movimentação, caso contrário apresenta a mensagem “Saldo insuficiente!” e retorna ao passo 2 do fluxo principal. E6 – Caso ocorra algum erro no armazenamento das informações no banco de dados o aplicativo apresenta a mensagem “Erro na atualização!” e retorna ao passo 2 do fluxo principal.
83
UC – Excluir carteira de ações Descrição Este caso de uso tem como finalidade excluir a posição de um ativo da carteira de ações. Atores Usuário. Pré-Condições Execução do caso de uso “UC – Consultar carteira de ações”. Pós-Condições A posição do ativo será excluída. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita excluir o saldo da posição de um ativo;
2. O aplicativo apresenta a mensagem “Deseja excluir a posição deste ativo?” com as opções “Sim” e “Não”;
3. O ator seleciona a opção “Sim”; [FA1] 4. O aplicativo exclui as informações da posição do ativo do banco de dados e
apresenta a mensagem “Excluído com sucesso!”; [E1] 5. O caso de uso é encerrado.
Fluxo de eventos alternativo FA1 – Não excluir
1. O ator seleciona a opção “Não”; 2. O caso de uso é encerrado.
Exceções E1 – Caso ocorra algum erro na exclusão das informações do banco de dados o aplicativo apresenta a mensagem “Erro ao excluir!” e o caso de uso é encerrado.
84
UC – Consultar indexador Este caso de uso tem como finalidade consultar o indexador. Atores Usuário. Pré-Condições Não se aplica. Pós-Condições O indexador é apresentado para consulta. Fluxo de eventos principal
1. O caso de uso é iniciado quando o ator aciona a opção “Indexador” no aplicativo;
2. O aplicativo exibe para consulta as informações “Código BACEN”, “Nome” e “Taxa” do indexador cadastrado; [FA1]
3. O caso de uso é encerrado. Fluxo de evento alternativo FA1 – Atualizar indexador
1. O aplicativo executa o caso de uso “UC – Atualizar indexador” e retorna ao passo 2 do fluxo principal.
85
UC – Atualizar indexador Descrição Este caso de uso tem como finalidade atualizar o indexador. Atores Usuário, BACEN. Pré-Condições Execução do caso de uso “UC – Consultar indexador”. Pós-Condições O indexador será atualizado. Fluxo de eventos principal
1. Este caso de uso é iniciado quando o ator solicita atualizar o indexador; 2. O aplicativo solicita as informações do indexador ao Web Service do
BACEN, armazena as informações no banco de dados e apresenta a mensagem “Atualização realizada com sucesso!”; [E1]
3. O caso de uso é encerrado. Exceções E1 – Caso ocorra algum erro na atualização das informações no banco de dados o aplicativo apresenta a mensagem “Erro na atualização!” e o caso de uso é encerrado.
86
APÊNDICE B – Diagramas de Sequência
Consultar ações
Cadastrar ações
87
Editar ações
Excluir ações
88
Consultar cotações
Atualizar cotações – BM&FBOVESPA pregão atual
89
Atualizar cotações – BM&FBOVESPA cotação histórica
Atualizar cotações – Yahoo Finanças
90
Detalhar cotações
Excluir cotações
91
Consultar carteira de ações
Editar carteira de ações
92
Movimentar carteira de ações
Excluir carteira de ações
93
Consultar indexador
Atualizar indexador
94
ANEXOS
ANEXO A – Bovespa: Layout do Arquivo – Cotações Históricas
95
96
97
98
99
100